有沒有更好的/類似於軌道的方式來處理這個非空查詢?有沒有更好的/像鐵軌一樣的方式來找到所有的東西是不是NULL查詢?
MyModel.find(:all, :conditions=>"some_reference_id IS NOT NULL")
有沒有更好的/類似於軌道的方式來處理這個非空查詢?有沒有更好的/像鐵軌一樣的方式來找到所有的東西是不是NULL查詢?
MyModel.find(:all, :conditions=>"some_reference_id IS NOT NULL")
更多類似於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
假設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不爲空且AND指向有效some_references記錄的記錄。
全表掃描。 – 2010-09-10 12:06:42
命名示波器更清潔,更優雅的方式.. +1 – sameera207 2010-09-10 15:01:55