无论如何,是否要向所有 Activity 记录模型添加查找条件?
那就是我想要这个查询
ExampleModel.find :all, :conditions=> ["status = ?", "active"]
表现与
ExampleModel.find :all
在每个模型中
谢谢!!
最佳答案
您可以使用 default_scope
:
class ExampleModel < ActiveRecord::Base
default_scope :conditions => ["status = ?", "active"]
end
如果要在所有模型中都使用它,则可以子类化
ActiveRecord::Base
并从其派生所有模型中的代码(可能不适用于单表继承):class MyModel < ActiveRecord::Base
default_scope :conditions => ["status = ?", "active"]
end
class ExampleModel < MyModel
end
...或者您可以在
default_scope
本身上设置ActiveRecord::Base
(如果您决定一个模型不应该具有此默认范围,可能会很烦人):class ActiveRecord::Base
default_scope :conditions => ["status = ?", "active"]
end
class ExampleModel < ActiveRecord::Base
end
正如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.
关于ruby-on-rails - 在Rails中为所有事件记录模型添加查找条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1326743/