Ruby on rails Rails集合\u选择窗体将所选值添加到数组中
我有一个Rails 4应用程序,它是一个游戏数据库。与此问题相关的模型有:Ruby on rails Rails集合\u选择窗体将所选值添加到数组中,ruby-on-rails,forms,Ruby On Rails,Forms,我有一个Rails 4应用程序,它是一个游戏数据库。与此问题相关的模型有: 游戏 体裁 游戏类型(关系表) 它有一个游戏/新表单,可以创建新的游戏记录 在该表单中,我需要一个子表单,允许用户添加流派。我的设想如下: 用户从选择输入中选择流派。这些选项是从类型填充的。所有 当用户点击Add(添加)按钮时,所选流派的id被推送到一个数组中。他们可以在这个数组中添加任意多的类型 当用户点击主游戏窗体上的Save时,应用程序使用我定义的add_genre功能为每种类型创建GameGenre关系记录
- 游戏
- 体裁
- 游戏类型(关系表)
类型填充的。所有
add_genre
功能为每种类型创建GameGenre
关系记录games/new.html.erb
查看代码:
<div id="game-genres-form">
<%= fields_for(@game.game_genres.build) do |f| %>
<div><%= hidden_field_tag :game_id, @game.id %></div>
<div class="form-group">
<%= f.label :genre_id, "Add a genre" %>
<div class="input-group">
<%= f.collection_select :genre_id, Genre.all, :id, :name,
{}, {:class=>'form-control'} %>
<span class="input-group-btn">
<%= f.submit "Add", class: "btn btn-default" %>
</span>
</div>
<% end %>
</div>
也许你的游戏模型中缺少了这样的东西
accepts_nested_attributes_for :game_genres ,allow_destroy: true
或者您可以尝试在视图中保存您的类型
<%= collection_select(:category, :ids, Category.all, :id, :category, { :selected => @categories.map{|m| m.id}}, {:multiple=>true}) %>
@categories.map{| m | m.id},{:multiple=>true})%>
您也可以发布您的关联吗。对于接受嵌套属性的字段,您应该具有allows_nested_属性。将它们添加到@ruby_newbie@ArupRakshit现在没什么可提供的对不起,我是个业余爱好者。我正在寻找一个项目的合作伙伴,但现在没有报酬。如果您仍然感兴趣,请告诉我。谢谢,我没有看到这些行,但我主要想知道我需要使用的表单类型,以及如何将所选类型发布到哈希或数组。有很多方法可以将所选类型保存到数据库中。。您可以使用collection\u select,而无需将嵌套表单的内容复杂化。。
<%= collection_select(:category, :ids, Category.all, :id, :category, { :selected => @categories.map{|m| m.id}}, {:multiple=>true}) %>