2011-10-09 53 views
0

我有一個連接表,它有3個參數。我想更新它,使用WHERE子句,像這樣:(這顯然是不正確的)Ruby on Rails 3:使用2個參數更新連接表?

Grid.update(:page_id => @page_id,:thing_id => @thing_id,:number => @number).where(:page_id => @page_id, :number => @number).first 

我需要找到mathing PAGE_ID和數量的記錄,然後更新thing_id。

謝謝! Jakob

+0

舊的和新的號碼/頁面是否相等? – tokland

回答

0
Grid.where(:page_id => @page_id, :number => @number).first. 
    update_attributes(:page_id => ...,: thing_id => ..., :number => ...) 
+0

謝謝!也工作的: Grid.where(:PAGE_ID => @page_id,:號碼=> @number).update_all(:thing_id => @thing_id) 發現這裏的例子: HTTP://api.rubyonrails .org/ – jakobk

+0

@jakobk:的確如此。實際上,你可以在update_all中寫入所有內容(請參閱條件參數)。我個人不會這樣做,因爲它不符合語義上的意圖(當然這是主觀的) – tokland