这是我在这里的第一篇文章,所以请多多包涵。我正在尝试将 nested_form gem 合并到我的 Rails 应用程序中。我有一个带有许多 BadgeElements 的 Badge 模型。我希望能够动态添加和删除 BadgeElements,但我无法让 gem 正常工作。我不知道这是我的设置还是我如何调用它。(我已经在 StackOverflow 和 Google 上寻找答案,但没有任何帮助。)我在我的 Gemfile 中安装了“nested_form”gem(0.3.2),在我的应用程序中添加了“//= require jquery_nested_form”行.js,并将我的“form_for”更改为“nested_form_for”,但添加和删除的链接不起作用。当我点击它们时,我会收到一条“javascript:void(0)”消息。有人可以告诉我我做错了什么吗?
以下是相关代码位供参考:
徽章.rb:
class Badge < ActiveRecord::Base
has_one :background, :dependent => :destroy
has_many :badge_elements, :dependent => :destroy
accepts_nested_attributes_for :background
accepts_nested_attributes_for :badge_elements, :allow_destroy => true
validates :title, presence: true, length:{minimum: 3}
end
_form.html.haml:
= nested_form_for @badge, html:{class:"form-horizontal edit_badge", data:{id:@badge.id}} do |f|
%table{class: "table"}
%tbody
.form-group
= render partial: "badge_elements/form", locals: {f:f}
= f.link_to_add "Add an element", :badge_elements
徽章元素/_form.html.haml:
= f.fields_for :badge_elements do |j|
%tr
%td
%td= j.label :side
%td= j.text_field :side, id: "badge_element_#{j.object.id}_side"
...
...
%tr
%td
%td= j.link_to_remove "remove element"
我正在运行 Rails 4。感谢任何帮助。提前致谢!