Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails集合\u选择窗体将所选值添加到数组中_Ruby On Rails_Forms - Fatal编程技术网

Ruby on rails Rails集合\u选择窗体将所选值添加到数组中

Ruby on rails Rails集合\u选择窗体将所选值添加到数组中,ruby-on-rails,forms,Ruby On Rails,Forms,我有一个Rails 4应用程序,它是一个游戏数据库。与此问题相关的模型有: 游戏 体裁 游戏类型(关系表) 它有一个游戏/新表单,可以创建新的游戏记录 在该表单中,我需要一个子表单,允许用户添加流派。我的设想如下: 用户从选择输入中选择流派。这些选项是从类型填充的。所有 当用户点击Add(添加)按钮时,所选流派的id被推送到一个数组中。他们可以在这个数组中添加任意多的类型 当用户点击主游戏窗体上的Save时,应用程序使用我定义的add_genre功能为每种类型创建GameGenre关系记录

我有一个Rails 4应用程序,它是一个游戏数据库。与此问题相关的模型有:

  • 游戏
  • 体裁
  • 游戏类型(关系表)
它有一个游戏/新表单,可以创建新的游戏记录

在该表单中,我需要一个子表单,允许用户添加流派。我的设想如下:

  • 用户从选择输入中选择流派。这些选项是从
    类型填充的。所有
  • 当用户点击Add(添加)按钮时,所选流派的id被推送到一个数组中。他们可以在这个数组中添加任意多的类型
  • 当用户点击主游戏窗体上的Save时,应用程序使用我定义的
    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}) %>