2014-09-13 119 views
3

假設一個模型Book,具有:滑軌:accepts_nested_attributes_for用「強參數」需要的ID在PARAMS

class Book < ActiveRecord::Base 
    has_many: pages 
    accepts_nested_attributes_for :pages 

來更新,而不是創建一個新的一個Page記錄,滑軌需要嵌套模型的ID(在這裏:Page)在「強參數」(在Book實例)被允許:

def update 
    @book.update(book_params) 
end 

private 

    def book_params() 
    params.require(:book).permit(:title, :author, :published, 
     pages_attributes: [:id, :word_count, :line_count]) # <= this ID in here 
    end 

但不的ID S IN「強參數」列入打敗他們的目的是什麼? (含義:用戶可以提交虛假的ID,導致錯誤的關聯。)

回答

3

Rails確保您嘗試更新的頁面屬於本書。如果您嘗試更改表格中的頁碼,您將收到錯誤:

Couldn't find Page with ID=3 for Book with ID=1