这个IS NOT NULL查询是否有更好的/ rails类似的方式?
MyModel.find(:all, :conditions=>"some_reference_id IS NOT NULL")
答案 0 :(得分:5)
与范围相似的Rails方式更多,因为它们现在是Rails 3的原生。在Rails 2中,您可以使用类似的named_scope。
class MyModel < ActiveRecord::Base
named_scope :referenced, :conditions => "some_reference_id IS NOT NULL"
end
#Then you can do this
MyModel.referenced
在Rails 3中,它会是这样的。
class MyModel < ActiveRecord::Base
scope :referenced, where "some_reference_id IS NOT NULL"
end
答案 1 :(得分:1)
假设MyModel belongs_to :some_reference
,您也可以使用
MyModel.all.find_all{ |e| e.some_reference }
或MyModel.all.find_all{ |e| e.some_reference_id }
真的取决于你想要实现的目标。 (2.)对于你的IS NOT NULL查询是等价的(就结果内容而言),(1。)只会返回some_reference_id不为空且指向有效some_references记录的记录。