Rails:如何创建新的嵌套记录

时间:2018-10-30 09:28:28

标签: ruby-on-rails ruby

我刚刚尝试用Cocoon gem创建新的嵌套项目(候选)。当前视图显示的不是创建表单而是更新表单,我该如何更改表单。

我想尝试仅显示创建表单。

<%= form_with(model: @title) do |f| %>
    <%= f.fields_for :candidates do |candidate| %>
    <div class="candidate-item">
        <%= candidate.hidden_field :title_id, value: @title.id %>
        <div class="field">
            <label>Candidate</label>
            <%= candidate.text_field :name%>
        </div>
        <div class="field file-field">
            <label>Image</label>
            <%= candidate.file_field :image, :type => "file" %> 
        </div>
    </div>
    <% end %>

我这样尝试过: form_with(model: @title, url: new_candidates_path,但发生未定义的错误。嵌套标题的候选人。请让我知道显示更新表单,创建表单的任何想法。

1 个答案:

答案 0 :(得分:1)

要允许添加和删除项目,请使用link_to_add_associationlink_to_remove_association方法,如下例所示

<%= form_with(model: @title) do |f| %>
  <%= f.fields_for :candidates do |candidate| %>
    <div class="candidate-item">
      <%= candidate.hidden_field :title_id, value: @title.id %>
      <div class="field">
        <label>Candidate</label>
        <%= candidate.text_field :name%>
      </div>
      <div class="field file-field">
        <label>Image</label>
        <%= candidate.file_field :image, :type => "file" %>
      </div>
      <div class="field file-field">
        <%= link_to_remove_association 'remove candidates', candidate %>
      </div>
    </div>
  <% end %>
  <div class="field file-field">
    <%= link_to_add_association 'add candidates', f, :candidates %>
  </div>
<% end %>