我想呼籲所有對象的功能源於where
查詢如何爲所有查詢結果調用函數?
事情是這樣的:
User.where('email LIKE ?', '%@domain.org').skip_confirmation!
什麼是這樣做的正確方法?調用查詢產生的所有對象的函數?
我想呼籲所有對象的功能源於where
查詢如何爲所有查詢結果調用函數?
事情是這樣的:
User.where('email LIKE ?', '%@domain.org').skip_confirmation!
什麼是這樣做的正確方法?調用查詢產生的所有對象的函數?
這是調用方法的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!)
User.where('email LIKE ?', '%@domain.org')
返回AREL關係,但你可以調用它的最陣列的方法,所以你可以做:
User.where('email LIKE ?', '%@domain.org').each &:skip_confirmation!
如果你希望你的查詢返回結果噸的,使用.find_each
代替。
PS:我不認爲'by_email'在這裏是個好名字。 – Robin
你可以建議一個合適的名字,謝謝:) –