Rails嵌套模型表单

时间:2012-07-10 11:47:09

标签: ruby-on-rails ruby form-for

目前我有三个型号:

Songs have many Setlists through Allocations
Setlists have many Songs through Allocations
Allocations belong to Setlists and belong to Songs

此刻我的表格如下:

 
 <%=f.label :date, "Set a date" %>
 <%=f.date_select :date%>

 <div>
  <%= render 'song' %> 
 </div>

 <%=f.submit "Create Setlist", class: "btn btn-large btn-primary" %>
  

上面给出的歌曲部分是:

<div id="songSelection">
<table class= "table table-striped table-bordered">
        <thead>
            <th>Title</th>
            <th>Artist</th>
            <th>Add to Set</th>
        </thead>
            <tbody>
      <% @songs.each do |song| %>
        <tr>
           <%= nested_form_for(@setlist.allocations.build(song_id: song.id)) do |builder| %>
           <td><%= song.title %></td>
           <td><%= song.artist %></td>
           <td>
              <%= builder.submit "Add Song", class: "btn btn-small btn-primary" %>
            <% end %>
           </td>
        </tr>
      <% end %>
    </tbody>
</table>
</div>

基本上我正在尝试通过分配将歌曲分配给设置列表。目前它声明歌曲部分中的f未定义。如果我摆脱它然后页面呈现正常但不能正常工作(即,每当我点击按钮添加一首歌曲时,它重定向它将更改保存到设置列表日期但不分配任何新的分配)。任何帮助将非常感激。我意识到我可能错过了信息,因为我对此有点新鲜,所以如果需要任何其他细节,请询问。

我尝试过使用Ryan Bates的嵌套表单宝石,但我无法让它工作。我认为这是因为当它试图构建它时它没有为分配分配歌曲ID,但不确定我将它放在何处/如何。

1 个答案:

答案 0 :(得分:0)