我有 2 个模型,Category
并且LineItemTypes
两者已经存在很多,现在需要将它们关联起来。每个类别都有许多 LineItemTypes。
我已经添加accepts_nested_attributes_for :line_item_types
了Category
我尝试hidden_field
在表单上使用 a 来创建现有关联的列表LineItemTypes
:
- form_for @category do |form|
%ul#categorised
- form.fields_for :line_item_types do |line_item_types|
-categorised.each do |l|
%li
=l.description
=line_item_types.hidden_field :category_id
=form.submit
如果我将一个项目添加到该列表中,我会收到错误消息,指出找不到该类别的 LineItemType。我认为如果该关联不存在,accepts_nested_attributes_for 会添加该关联。还是仅用于“创建”新记录和修改现有关系,而不是创建新关系。
a.update_attributes({:line_item_types_attributes => [{:id => 2767}, {:id => LineItemType.find(2).id}]})
ActiveRecord::RecordNotFound: Couldn't find LineItemType with ID=2 for Category with ID=1
任何想法都无需编写任何东西来遍历生成的表单参数并创建关联?或者更简单的方法来实现这一点?