ActiveRecord按伪属性搜索

时间:2017-10-31 02:47:10

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

在我的模型上我有方法

def complete?
    self.address_id && self.user_id && self.location
end

是否可以使用activerecord进行搜索,以查找此为真的记录,或者我是否必须在每次查找中检查所有这些列是否为零?

1 个答案:

答案 0 :(得分:1)

看起来这样做的方法是为模型创建一个范围:

scope :complete, -> { where.not(address_id: nil, user_id: nil, location_id: nil)}

然后使用Model.complete

进行搜索