dan*_*iel 1 ruby activerecord ruby-on-rails ruby-on-rails-3
鉴于我有一个带约会的模型/表,保存为日期.我想创建一个只返回活动记录的方法.一个用于所有记录,一个用于对象.我的方法是可以改进/可组合的吗?感谢建议!
def self.actives
where("start_time >= ?", Date.today)
end
def is_active
where("start_time >= ?", Date.today)
end
Run Code Online (Sandbox Code Playgroud)
范围是处理第一个过滤器的正确方法.请参阅doc:http://api.rubyonrails.org/classes/ActiveRecord/NamedScope/ClassMethods.html
您的第二个过滤器将无法使用,请替换为:
def is_active?
start_time >= Date.today
end
Run Code Online (Sandbox Code Playgroud)
我不明白你为什么要结合这两种方法.
意识到:
Model.actives将为您提供ActiveRecord关系.您必须附加.all才能触发呼叫.然后你将有一个迭代的数组.
instance.is_active?将提供一个布尔值
| 归档时间: |
|
| 查看次数: |
449 次 |
| 最近记录: |