Rails - 如何在编辑模式下呈现嵌套表单部分

时间:2016-08-23 00:50:06

标签: ruby-on-rails forms simple-form partial-views nested-forms

我正在试图弄清楚如何渲染嵌套表单的编辑链接。

我有称为项目和潜在用途的模型。协会是:

项目

v

潜在用途

unique_ptr

在我的项目展示页面中,我从我的潜在用途视图文件夹中渲染部分视图。在该视图中,我呈现了一个允许编辑内容的链接。

has_many :potential_uses
      accepts_nested_attributes_for :potential_uses, reject_if: :all_blank, allow_destroy: true

在我的潜在用途视图文件夹中,我有一个编辑视图,其中包含:

belongs_to :project
belongs_to :user

在我的潜力中使用第三方评论部分,我有:

 <% @project.potential_uses.each do |pu| %>
            <p><%= pu.comment %></p>
             <%= link_to 'Edit', edit_project_potential_use_path(@project, pu), f: f %>

关于这个问题是错误的,因为当我保存它并尝试使用它时,我收到的错误是:

<%= render 'potential_uses_third_party_comments' %>

我从其他帖子中了解到,通过在编辑链接的末尾添加f:f来解决此错误。我已经有了。

谁能看到我做错了什么?

3 个答案:

答案 0 :(得分:2)

您可以使用rails fields_for方法渲染嵌套。

<%= f.fields_for :potential_uses do |pu| %>
   <%= render 'potential_uses_third_party_comments', f: pu %>
<% end %>
<%= link_to_add_association '+ Add Potential Use(s)', f, :potential_uses, partial: "potential_uses_third_party_comments", class: "btn btn-sm btn-primary" %>

答案 1 :(得分:0)

您的代码令人困惑..

<% @project.potential_uses.each do |pu| %>
   <p><%= pu.comment %></p>
   <%= link_to 'Edit', edit_project_potential_use_path(@project, pu), f: f %>
<% end %>

您的f变量在哪里定义?为什么将f: f添加到link_to方法?

f - 我认为,FormBuilder对象,常见的情况是将f: f添加到render partials,如下所示:

<%= simple_form_for [ @project, @potential_use ] do |f| %>
  <%= render 'potential_uses_third_party_comments', f: f %>
<% end %>

答案 2 :(得分:0)

请按照此网址https://github.com/nathanvda/cocoon进行操作。