ste*_*ard 6 activerecord ruby-on-rails find conditional-statements
反正有没有为所有Active记录模型添加查找条件?
这是我想要这个查询
ExampleModel.find :all, :conditions=> ["status = ?", "active"]
Run Code Online (Sandbox Code Playgroud)
表现得和...一样
ExampleModel.find :all
Run Code Online (Sandbox Code Playgroud)
在每个模型中
谢谢!!
mol*_*olf 17
你可以使用default_scope
:
class ExampleModel < ActiveRecord::Base
default_scope :conditions => ["status = ?", "active"]
end
Run Code Online (Sandbox Code Playgroud)
如果你想在你的所有模型中使用它,你可以在所有模型中子类化ActiveRecord::Base
并从中派生(可能不适用于单表继承):
class MyModel < ActiveRecord::Base
default_scope :conditions => ["status = ?", "active"]
end
class ExampleModel < MyModel
end
Run Code Online (Sandbox Code Playgroud)
...或者你可以设置default_scope
上ActiveRecord::Base
本身(如果您认为一个模型不应该有此默认范围可能是恼人的):
class ActiveRecord::Base
default_scope :conditions => ["status = ?", "active"]
end
class ExampleModel < ActiveRecord::Base
end
Run Code Online (Sandbox Code Playgroud)
正如在评论klochner提到的,你可能还需要考虑增加一个named_scope
到ActiveRecord::Base
,命名active
,例如:
class ActiveRecord::Base
named_scope :active, :conditions => ["status = ?", "active"]
end
class ExampleModel < ActiveRecord::Base
end
ExampleModel.active # Return all active items.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4393 次 |
最近记录: |