我正在尝试为where
查询
这样的事情:
User.where('email LIKE ?', '%@domain.org').skip_confirmation!
这样做的正确方法是什么?为查询产生的所有对象调用函数?
答案 0 :(得分:1)
User.where('email LIKE ?', '%@domain.org')
返回一个arel关系,但你可以在其上调用大多数Array方法,所以你可以这样做:
User.where('email LIKE ?', '%@domain.org').each &:skip_confirmation!
如果您希望查询返回大量结果,请改用.find_each
。
答案 1 :(得分:1)
这是一种调用arel
的方法User.where('email LIKE ?', '%@domain.org').each(&:skip_confirmation!)
如果您想要更优化的代码,请将查询移至scope
,然后按以下方式调用
scope :by_email, -> {where('email LIKE ?', '%@domain.org')}
User.by_email.each(&:skip_confirmation!)