我不确定正确的术语是什么,所以我的谷歌搜索没有多大帮助。
但无论如何,ActiveRecord允许你使用类似这样的布尔属性TRUE搜索所有记录:
@current_events = Event.current
因此返回属性“current”等于TRUE的所有事件。
是否有一个漂亮的ActiveRecord方法来返回所有FALSE?也许是这样的:
@outdated_events = Event.not_current
如果没有,那么我可以使用“where”方法。但我只是好奇。
谢谢!
答案 0 :(得分:1)
您可能会误将ActiveRecord的“命名范围”类方法误认为是Rails功能。例如,
class Foo < ActiveRecord::Base
def self.current
where current: true
end
end
会创建您描述的行为,但不会在没有上述内容的情况下调用Foo.current
。因此,要创建not_current
,请使用where
:
def self.not_current
where current: false
end