我刚刚尝试用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
,但发生未定义的错误。嵌套标题的候选人。请让我知道显示更新表单,创建表单的任何想法。
答案 0 :(得分:1)
要允许添加和删除项目,请使用link_to_add_association
和link_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 %>