named_scope :correct, :include => :correction, :conditions => "checked_at IS NOT NULL AND corrections.id IS NULL"
在旁注上我已经用Google搜索了书并查看了书籍,但我似乎无法找到您可以使用的所有各种类型条件的列表,以及它们在将它们实现为字符串,数组或哈希时的不同之处。
是否有任何语法列表?
答案 0 :(得分:4)
您发布的字符串是正确的。此外,没有办法使用数组或散列表达相同的条件。
当您需要插值时,Array-syntax和Hash语法非常有用。例如,以下条件
named_scope :is_one, :conditions => "field = '1'"
可以写成
named_scope :is_one, :conditions => ["field = ?", "1"]
或
named_scope :is_one, :conditions => { :field => "1" }
Hash语法是Array语法的子集,仅支持一组有限的运算符。 例如,您可以转换
named_scope :is_one, :conditions => ["field1 = ? AND field2 IN (?)", "1", ["foo", "bar"]]
到
named_scope :is_one, :conditions => { :field1 => "1", :field2 => ["foo", "bar"] }
但
没有Hash等价物# OR
named_scope :is_one, :conditions => ["field1 = ? OR field2 IN (?)", "1", ["foo", "bar"]]
# <>
named_scope :is_one, :conditions => ["field1 <> ?", "1"]