繁体   English   中英

Rails 3.1茧形宝石的嵌套形式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM