[英]Rails 3.1 cocoon gem for nested forms
我实际上是在试着用cocoon gem(由nathanvda编写)和simple_form gem来动态添加和删除表单上的字段。我不明白为什么嵌套表单不会显示在表单上,这是代码。(我当然是新手)。请给我帮助。
menu / _form.html.erb
<%= simple_form_for @菜单做| f | %>
<%= 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%>
menu / _drink_fields.html.erb
.nested-fields <%= f.input:name%> <%= link_to_remove_association“删除饮料”,f%>
这些是模型
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
在Assets / javascripts / application.js中
//= require cocoon
在layouts / application.html.erb中
<%= javascript_include_tag :cocoon %>
您的嵌套形式有误,您正在混合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 %>
希望这可以帮助。
感谢nathanvda的平视。我终于找到了一个处理嵌套字段的宝石,这是链接: https : //github.com/lailsonbm/awesome_nested_fields 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.