16
在Rails 3,我如何與像一個狀態更新的屬性:我怎樣做一個更新語句,其中一個條件
Model.where("state == 'decline'").all.update_attribute(:state, 'deny')
這肯定是不對的,但我吸取了如何實現一個空白這個。
在Rails 3,我如何與像一個狀態更新的屬性:我怎樣做一個更新語句,其中一個條件
Model.where("state == 'decline'").all.update_attribute(:state, 'deny')
這肯定是不對的,但我吸取了如何實現一個空白這個。
ActiveRecord::Relation提供update_all
方法。
Model.where(state: 'decline').update_all(state: 'deny')
你也可以連接update_all
關閉的對象,如:
book.chapters.where(:state => 'draft').update_all(:state => 'unpublished')
另外要小心用'.all'方法,它使DB調用馬上和收集轉換成一個陣列。這是非常有用的,因爲它會延長延遲加載性能。 – 2012-02-08 02:07:50