![](/img/trans.png)
[英]Using a where clause with join clause in Rails activerecord
[英]ActiveRecord 'where' clause using function
我正在尝试在ActiveRecord :: Relation上应用过滤器。 我想应用“ where”子句(或等效子句)进行以下调用。
record = Record.all
record.where(record.remaing_units > 5)
我知道对函数进行编码并将其传递2个参数很容易,但是我想知道是否有更干净的方法可以做到,更像是“哪里”。
编辑:remaining_units是Record类计算2个字段之间相减的一种方法。
您不能将方法用作mysql查询。
您可以运行与sql方法相同的功能:
Record.where('a + b > 5')
或者从数据库获取所有记录,并使用ruby select
方法:
Record.all.select{ |r| r. remaing_units > 5 }
**您可以尝试Squeel gem以获得更好的查询
class Record < ActiveRecord::Base
scope :remaining_space, ->(n) {
where("records.field_1 - records.field_2 > ?", n)
}
end
Record.remaining_space(5)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.