我实际上正在尝试cocoon gem(由nathanvda)和simple_form gem来动态添加和删除表单上的字段。我不明白为什么嵌套表单不会出现在我的表单上。这是代码。 (我当然是新手)。我可以帮忙吗。
菜单/ _form.html.erb
<%= simple_form_for @menu do | f | %GT;
<%= f.input :name %> <%= f.input :price %> <%= f.simple_fields_for :drinks do |drink| %> =render "drink_fields", :f => drink.links %> <%= link_to_add_association "Add drink"%> <%end%> <%= f.button :submit %> <%end%>
菜单/ _drink_fields.html.erb
.nested场 &lt;%= f.input:name%&gt; &lt;%= link_to_remove_association“删除饮品”,f%&gt;
这些是模型
class Drinks < ActiveRecord::Base
belongs_to :menu
end
class Menu < ActiveRecord::Base
attr_accessible :drinks_attributes
has_many :drinks, :dependent => :destroy
accepts_nested_attributes_for :drinks
end
资产/ javascripts / application.js中的
//= require cocoon
layouts / application.html.erb 中的
<%= javascript_include_tag :cocoon %>
答案 0 :(得分:1)
您的嵌套表单错误,您正在混合haml和erb。如果您还没有个人喜好,我建议使用haml,我发现它比erb更容易和更清洁。
除此之外,您的menu/_drink_fields.html.erb
应如下所示:
<div class='nested-fields'>
<%= f.input :name %>
<%= link_to_remove_association "remove drink", f %>
</div>
此外,在menu/_form.html.erb
内,您应该写下以下内容:
<%= f.simple_fields_for :drinks do |drink| %>
<%= render "drink_fields", f: drink %>
<% end %>
<%= link_to_add_association "Add drink", f, :drinks %>
希望这有帮助。
答案 1 :(得分:0)
感谢头部nathanvda。我终于找到了一个处理嵌套字段的gem,以下是链接:https://github.com/lailsonbm/awesome_nested_fields。