【问题标题】:class method on active records query活动记录查询的类方法
【发布时间】:2011-07-27 10:52:42
【问题描述】:

鉴于我有一个带有约会的模型/表格,并保存为日期。我想创建一个只返回活动记录的方法。一个用于所有记录,一个用于对象。我的方法是否可改进/可组合?谢谢指教!

def self.actives
  where("start_time >= ?", Date.today)
end

def is_active
  where("start_time >= ?", Date.today)
end

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 activerecord


    【解决方案1】:

    范围是处理您的第一个过滤器的正确方法。见文档:http://api.rubyonrails.org/classes/ActiveRecord/NamedScope/ClassMethods.html

    您的第二个过滤器不起作用,替换为:

    def is_active?
      start_time >= Date.today
    end
    

    我不明白你为什么要结合这两种方法。

    请注意:

    • Model.actives 将为您提供 ActiveRecord 关系。您必须附加 .all 才能触发呼叫。然后你将有一个数组进行迭代。

    • instance.is_active?将提供一个布尔值

    【讨论】:

      猜你喜欢
      • 2012-08-01
      • 1970-01-01
      • 2016-03-10
      • 2013-02-01
      • 2013-04-23
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多