鉴于我有一个带约会的模型/表,保存为日期。我想创建一个只返回活动记录的方法。一个用于所有记录,一个用于对象。我的方法是可以改进/可组合的吗?谢谢!
def self.actives
where("start_time >= ?", Date.today)
end
def is_active
where("start_time >= ?", Date.today)
end
答案 0 :(得分:5)
范围是处理第一个过滤器的正确方法。请参阅doc:http://api.rubyonrails.org/classes/ActiveRecord/NamedScope/ClassMethods.html
您的第二个过滤器无效,请替换为:
def is_active?
start_time >= Date.today
end
我看不出你为什么想要结合这两种方法。
请注意:
Model.actives将为您提供ActiveRecord关系。您必须附加.all才能触发呼叫。然后你将有一个迭代的数组。
instance.is_active?将提供一个布尔