0

有没有人使用nested_form gem 并通过关系使用has_many 而不仅仅是has_many?(我还是 Rails 的新手)

我正在开发一个应用程序,在许多其他地方,我们成功地使用了nested_form gem 在视图中的表单上动态添加和删除字段,但由于某种原因,在我们使用 has_many 的应用程序的这个新部分,宝石不再做它的工作了。

为了更好地解释,视图显示了“添加”和“删除”的链接,但 javascript 没有添加/删除字段……它呈现的是死链接。

应用程序的其他部分仍然可以正常工作,并且来自 javascript 的 nested_form 代码在两个页面之间是相同的。创建表单的方法也是相同的......所以我能看到的唯一区别是其他模型使用简单的 has_many 关系,而我通过这里处理 has_many 。

不完全确定我应该为这个问题发布什么,因为我没有遇到可以发布跟踪的错误。

这是视图部分表单中的代码:

    = f.fields_for :purchase_request_line_items do |f|
    = render :partial => 'purchase_requests/purchase_request_line_item_fields', :locals => {:f => f}
    %br
    = f.link_to_remove "Remove this item"
  %br
  = f.link_to_add "+ add item(s)", :purchase_request_line_items, :class => 'add_form_section_button'

以下是上述代码中的部分代码:

.field
  = f.select(:inventory_item_id, options_for_select(InventoryItem.all.map{ |i| [i.name, i.id] }))

.field
  = f.label :quantity
  = f.text_field :quantity

当然,我在应用程序中也有这个:

javascript_include_tag :defaults, "nested_form"

我在表单部分的顶部有 javascript_include_tag,这也是我们将它放置在应用程序的其他(工作)部分中的方式。

任何帮助将不胜感激。直到昨天下午我才使用过这个宝石,所以我对这个有点茫然。目前我尝试了多种解决方法均无济于事。

我对 Rails 还是很陌生……如果这很简单,我深表歉意。

此外,如果需要更多信息,我很乐意提供更多详细信息。

谢谢你。

4

1 回答 1

0

所以事实证明,如果你完全使用 Ryan 的文档,它与我们正在运行的设置并不能完全兼容。我们正在运行 Rails 3.0.9 和 Ruby 1.9.3p448。

文档指导您使用“javascript_include_tag :defaults, 'nested_form'

我尝试删除 ":defaults",现在一切正常。

仅在使用旧版本的 Rails 时可能会有所不同,但无论如何……它现在可以工作了。

希望这可以帮助其他人,如果他们遇到同样的事情。

于 2013-10-09T17:48:41.970 回答