目前,我正在构建一个类似媒体的博客服务,用户可以添加合成文章正文的文章部分(文本,图像,youtube ......等)。
文章模型有很多ArticlePart模型并且动态创建嵌套表单,我正在使用cocoon gem。 这是我目前的代码。
_form.html.erb
<%= link_to_add_association("Add New Article Part", f, :article_parts,{:data => {"association-insertion-node" => "#article" }}) %>
<ul class="sortable">
<div id="article">
<%= f.fields_for :article_parts %>
</div>
</ul>
_article_part_fields.html.erb
<li class="nested-fields">
<h2>Text Part</h2>
<%= f.hidden_field :position %>
<%= f.label :title %>
<%= f.text_field :title %>
<%= link_to_remove_association("Delete part", f) %>
<h2>Insert New Article Part Here</h2>
</li>
以上工作正常,但我想要做的是显示“link_to_add_association”,其中“在此处插入新文章部分”块在_article_part_fields.html.erb中,以便用户可以在任何他们想要的地方添加新文章部分。
我尝试通过将父对象表单传递给嵌套对象表单来执行此操作,但此代码导致堆栈级别太深错误。
<li class="nested-fields">
<h2>Text Parts</h2>
<%= f.hidden_field :position, :class => "position" %>
<%= f.label :title %>
<%= f.text_field :title, :class => "fld-name required" %>
<%= link_to_remove_association("Delete part", f) %>
<h2>Insert New Part Here</h2>
<%= link_to_add_association("商品", parent_form, :article_parts,{:render_options => {:locals => {:parent_form => parent_form}}, :data => {"association-insertion-node" => "#article" }}, :class => 'btn btn-ctrl btn-lg') %>
</li>
任何帮助都可以帮助您实现这一目标,或提出另一种方法来实现这一目标。
提前致谢!