5

我正在編寫當前Rails3項目中的導出器。此出口商必須將每個導出的記錄標記爲「導出」(bool)。我知道如何在一個循環中輕鬆地完成這個任務,但老實說,讓Rails查詢數據庫(例如連續300次)並不是很好,只需要在300條記錄上設置一個字段即可。用於更新多個記錄上的單個屬性的最佳實踐

有誰知道是否有一種很好的方法來優化?我應該使用預處理語句手動播放,還是Rails3會自動處理這個問題?是否有另一個SQL命令可以在一個步驟中完成此操作?

感謝您的幫助

  • 阿恩

回答

15

使用update_all在類的方法。從Rails API

# Update all books with 'Rails' in their title 
Book.update_all "author = 'David'", "title LIKE '%Rails%'" 
+0

嘿,感謝在這指點我。我應該在API文檔中看到這一點。似乎是我正在尋找的! – arnekolja 2011-02-20 16:54:58

5

由於ActiveRecord的4.0這樣被棄用(Rails API),做同樣的電流的方法是:

# Update all books with 'Rails' in their title 
Book.where('title LIKE ?', '%Rails%').update_all(author: 'David')