我有一個模型,Disc
。form_for更新失敗時,雖然創建工作?
的Disc#new
動作傳遞到@disc = Disc.new
具有簡單form_for
助手的圖,讀
form_for(:disc, url: {action: 'create'}) do |f|
# the usual text fields etc follow
在discs_controller.rb
,我有一個私人方法disc_params
,其內容params.require(:disc).permit(:owner, :title)
等。 Disc#create
只是說Disc.create(disc_params)
。
這一切都工作得很好。遇到麻煩的地方是創建編輯表單。
Disc#edit
讀數爲@disc = Disc.find(params[:id])
。 edit
視圖是new
視圖的確切克隆,只有其開頭行顯示form_for(:disc, url: {action: 'update', id: @disc.id})
。它提交到Disc#update
,其內容爲Disc.find(params[:id]).update(disc_params)
。
在我看來,它應該工作,但顯然我錯了,因爲它會拋出以下錯誤:param丟失或值爲空:光盤。
跟蹤點,這兩條線:
params.require(:disc).permit(:owner_id, :title, :contents)
和
Disc.find(params[:id]).update(disc_params)
這一個絆倒了我。我很感激,如果有人可以澄清爲什麼這似乎不工作。
什麼是20+分鐘後給予同樣的答案呢?我只是不明白,沒有冒犯。 – potashin