-1

我正在採取第一步「在軌道上」。我查了幾個關於stackoverflow的問題,並使用了google很多,但我似乎無法解決我的問題。「未經允許的參數:」與已添加到白名單的嵌套屬性的兩個多對多關聯中的錯誤

我試圖編寫一個rails應用程序,讓你管理電影列表和演員列表。電影可以有多個演員(因此演員可以主演多部電影)。我有兩個模型MovieActor以及聯合ActorsMovie模型。正如你所看到的,我想建立一個兩對多的關係。

請在這裏找到相關的文件: https://gist.github.com/ecksma/f09d2a6ec631e46eafe9

即使我加入params.require(:movie).permit(:title, :year, actors_attributes:[:actor_id,:name])movies_controller,我得到一個Unpermitted parameter: actors錯誤,當我嘗試創建一個新的電影演員。

命令行輸出 https://gist.github.com/ecksma/f09d2a6ec631e46eafe9#file-command_line_output

我有同樣的問題,當我嘗試創建一個電影新人演員。演員創建,但我得到Unpermitted parameter: movies,雖然我加params.require(:actor).permit(:name, movies_attributes:[:title,:year,:movie_id])actors_controller

形式和基本的CRUD似乎工作,除了我似乎無法與演員掛鉤電影,反之亦然。

關於我做錯了什麼的建議?

+0

你可以發佈整個控制器和表格嗎?看起來你有一個錯誤的字段那裏 – matanco

+0

如果你按照這個鏈接[窗體,控制器,模型等](https://gist.github.com/ecksma/f09d2a6ec631e46eafe9),你應該找到所有相關的文件在一個要點(如整個控制器)。謝謝! – user3497221

回答

0

您是否嘗試在Movie型號中添加accepts_nested_attributes_for :actors

+0

我只是試過,它的工作原理。非常感謝!這真的很有幫助。儘管如此,在編輯電影時卻有一種奇怪的行爲。每次我將演員添加到現有的電影中時,最初與電影一起添加的演員將在兩次後列出。 – user3497221

+0

您需要在「actors_attributes」中允許「id」。當你做MyModel.update_attributes(params)時,它會檢查「id」。如果「ID」存在,則記錄得到更新,否則將創建新記錄。 –

+0

你很棒,真的幫了我很大的忙!再次感謝。 – user3497221

相關問題