如何使用符号和运算符的活动记录查询?

时间:2011-11-07 11:34:06

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

为了更好的可读性,可以将其转换为使用符号和运算符表示法:

  scope :visible, where("is_hidden = false")
  scope :current, where("exp_date IS NULL OR exp_date > " + timestamp)

转换为以下内容:

scope :active, where(   :is_hidden => false,
                        (:exp_date => nil || :exp_date > timestamp)
                    )

抱歉搞砸了语法(我是ruby的新手)

1 个答案:

答案 0 :(得分:0)

我觉得我正在窃取人们评论你的问题的荣耀,但这也是一个可能的解决方案:

使用squeel,您可以编写范围如下:

def self.active
  where{!is_hidden}
end

def self.current(timestamp)
  where{exp_date.nil? | exp_date > timestamp}
end