我需要在Ruby on Rails代码的模型类的scope子句中提供2个过滤条件。
我尝试过:
scope :post_total, -> {where(division: 'PMT', 'key between ? and ?, 3, 7)}
除法和键是我需要进行过滤的2列名称。
因此,我需要基本实现此条件:
WHERE DIVISION = 'PMT' AND KEY BETWEEN 3 AND 7
我在上面显示的Rails范围条件中遇到错误。编写此范围条件的正确方法是什么?
请帮助!
答案 0 :(得分:1)
这应该做
scope :post_total, -> {where("division = ? AND key BETWEEN ? AND ?", 'PMT', 3,7)}
答案 1 :(得分:1)
您可以链接where
子句以使用Rails语法和直接SQL:
scope :post_total, -> { where(division: 'PMT').where('key BETWEEN ? AND ?', 3, 7) }
Rails会将其作为一个查询执行,并以所需的方式进行组织。
希望有帮助-如果您有任何疑问,请告诉我。
答案 2 :(得分:1)
我会这样:
scope :post_total, -> { where division: 'PMT', key: 3..7 }