我有一個Rails應用程序,擁有一個擁有很多關係的專輯和歌曲模型。我正在嘗試使用simple_form和nested_form寶石將歌曲添加到相冊中。如何使用simple_form和嵌套窗體通過關聯爲has_many創建嵌套窗體?
如果我使用simple_form,創建關聯很容易,但是我無法使其與nested_form配合使用。看來這應該工作:
<%= f.fields_for :songs do |song_form| %>
<%= song_form.association :songs %>
<%= song_form.link_to_remove "Remove this song" %>
<% end %>
<p><%= f.link_to_add "Add a song", :songs %></p>
但我得到這個錯誤:RuntimeError in Albums#new Association :songs not found
。如果我只是使用simple_form,該協會工作正常。
正確的語法是什麼?還是這些寶石不相容?如果這兩個寶石不兼容,那麼如何使用nested_form添加和刪除專輯中的歌曲?
/視圖/專輯/ _form https://gist.github.com/leemcalilly/51e7c5c7e6c4788ad000
/模型/專輯 https://gist.github.com/leemcalilly/9a16f43106c788ab6877
/模型/歌曲 https://gist.github.com/leemcalilly/0ccd29f234f6722311a0
/模型/ albumization https://gist.github.com/leemcalilly/c627ad2b178e1e11d637
/控制器/ albums_controller https://gist.github.com/leemcalilly/04edf397b2fb2a3d0d1d
/控制器/ songs_controller https://gist.github.com/leemcalilly/bcbccc9259c39d0b6b7a
你可以發佈你的相冊控制器嗎?它看起來就是錯誤來自的地方。 – 2013-03-17 23:45:55
編輯它以包含我的控制器。 – 2013-03-18 14:38:52
在您的'albuns_controller.rb'的'new'動作中添加一個'@ album.songs.build'。 – MurifoX 2013-03-18 14:42:43