轨以某种方式增加了AND (1=0)
到一个模型的SQL查询:
CompanyRelation Load (0.2ms) SELECT `company_relations`.* FROM `company_relations` WHERE `company_relations`.`vendor_id` = 1 AND (1=0)
轨以某种方式增加了AND (1=0)
到一个模型的SQL查询:
CompanyRelation Load (0.2ms) SELECT `company_relations`.* FROM `company_relations` WHERE `company_relations`.`vendor_id` = 1 AND (1=0)
你还可以找到1 = 1或1 = 0在你的查询,如果你在哪里(PARAMS [:数据])和数据是空值的哈希值。 例如,你有PARAMS散活
{ village: { directions: { id: Empty Array }}}
似乎是惨惨的问题:
http://github.com/ryanb/cancan/issues/733
这是我发现了包含“轨道范围‘和1 = 0’”的第一个问题。 正如rossmari所提到的,有可能是空的散列。 您可能无意中被应用范围,用来生成一个散列的条件。 这个范围可以让你有一个空的哈希值。 例如
Assessment.last.children.for_user(user)
将应用for_user范围,你可能不希望里面的小孩范围。 在下面的例子,ID的散列是通过id参数传递。
如果你有类似的东西
scope :for_user, lambda { |user|
where(id: Question.where(assigned_to: user).... #a hash
然后尝试添加无范围
scope :for_user, lambda { |user|
where(id: Question.unscoped.where(assigned_to: user).... #a hash
编辑:我发现,当我想我需要无范围,有一个很好的机会,我已经结构化的错误我的查询。