Ruby on rails 嵌套表单呈现问题

Ruby on rails 嵌套表单呈现问题,ruby-on-rails,cocoon-gem,Ruby On Rails,Cocoon Gem,好的,这一个应该很容易,这意味着我在拔头发的边缘 我会尽量让解释保持简单 我有一个表格,用来创建一个新的案例。这些箱子有单独的部分 我正在尝试创建一个复选框列表,以便您可以勾选所需的零件,单击“添加”,然后显示包含的零件的标题 取而代之的是,我通过复选框选择部件,单击添加,然后整个项目列表(包括复选框)被添加到页面中。我只想显示选定的部分标题 这是我的表格: _form.html.erb <%= simple_form_for @case, html: { multipart: true

好的,这一个应该很容易,这意味着我在拔头发的边缘

我会尽量让解释保持简单

我有一个表格,用来创建一个新的案例。这些箱子有单独的部分

我正在尝试创建一个复选框列表,以便您可以勾选所需的零件,单击“添加”,然后显示包含的零件的标题

取而代之的是,我通过复选框选择部件,单击添加,然后整个项目列表(包括复选框)被添加到页面中。我只想显示选定的部分标题

这是我的表格:

_form.html.erb

<%= simple_form_for @case, html: { multipart: true } do |f| %>
  <%= f.input :image, as: :file %>
  <%= f.input :title, label: "Case" %>
  <%= f.input :description, label: "Parts" %>

  <%= f.simple_fields_for :parts do |part| %>
    <%= render 'part_fields', f: part %>
    <%= link_to_add_association 'Add Part', f, :parts, class: "btn btn-default add-button" %>
  <% end %>

  <%= f.button :submit %>
<% end %>
_parts_fields.html.erb

<%= f.label "Parts list" %><br />
<%= f.collection_check_boxes :title, Part.all, :id, :title do |b| %>
  <div class="collection-check-box">
    <%= b.check_box %>
    <%= b.label %>
  </div>
<% end %>
我不知道我还需要发布什么代码,所以如果您还需要什么,请告诉我

另外,我想增加数量,但不确定从哪里开始。如果有人能帮上忙,或者给我指出正确的方向,我将不胜感激


谢谢

看来你的工程设计太过火了

首先,如果您只想添加现有零件,即用户无法创建任何新零件,则可以填充@case对象的属性:


此外,在这个项目中,由于我的模型案例中的一些错误,我了解到ruby案例语句的存在。哈哈。可能会用不同的名称重新开始。让你知道我是个多么愚蠢的人在与@Rich聊天后,我们意识到我需要一个has\u和\u属于\u many协会,而不是has\u many,现在他的解决方案起作用了:谢谢,里奇。这是另外两个项目的混搭,因此过度工程化是有意义的!我只想添加现有零件。我尝试了您的解决方案,然后意识到:name属性实际上应该是:title,修复了这一点,它就完成了。但是当我在控制台中检查新创建的案例时,parts属性为nil,只显示标题和描述。我怎样才能让它显示零件?我希望能够按零件对案例进行排序,主要是排除某个零件缺货的案例。再次感谢您在强参数中允许part_id?我刚这么做,然后意识到没有part_id属性。现在我有点困惑,应该在哪里添加,是零件模型还是案例模型?我为这些愚蠢的问题感到抱歉,谢谢你的时间和耐心。要求:案例。许可:案例模型中的部分ID-没问题,很好,你正在尝试解决它。我一点也不介意回答:好吧,我把它放在箱子控制器里了。在控制台中,当我执行@case=case.last时,part_id仍然为nil
<%= simple_form_for @case, html: { multipart: true } do |f| %>
  <%= f.input :image, as: :file %>
  <%= f.input :title, label: "Case" %>
  <%= f.input :description, label: "Parts" %>

  <%= f.collection_check_boxes :part_ids, Part.all, :id, :name %>
  <%= f.submit %>

<% end %>
<%= simple_form_for @case, html: { multipart: true } do |f| %>
  <%= f.input :image, as: :file %>
  <%= f.input :title, label: "Case" %>
  <%= f.input :description, label: "Parts" %>

  <%= f.collection_check_boxes :part_ids, Part.all, :id, :name %>
  <%= link_to_add_association 'Create Part', f, :parts, class: "btn btn-default add-button" %>

  <%= f.submit %>
<% end %>

#_parts_fields.html.erb
<%= f.text_field :title %>