保存对象数组时HashWithIndifferentAccess

时间:2010-02-25 08:28:17

标签: ruby-on-rails ruby

好的,我有这两个班级

class Interface < ActiveRecord::Base
  belongs_to :hardware      
end

class Hardware < ActiveRecord::Base
  has_many :interfaces
end

我有一个预定义 @ hardware.interfaces 的表单,其中包含接口数组,其处理方式如下所示

<%= text_field_tag "hardware[interfaces][][name]",interface.name %>
<%= text_field_tag "hardware[interfaces][][ip]",interface.ip %>

现在我尝试做...

@hardware = Hardware.find(params[:id])
@hardware.update_attributes(params[:hardware]) 

并抛出错误

Interface(#37298420) expected, got HashWithIndifferentAccess(#24204840)

有人能告诉我发生了什么事吗?以及如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

update_attributes更新模型属性..并且您正在尝试更新其他模型属性(Interface类)

你想使用嵌套的形式&amp; accepts_nested_attributes_for - 您可以在此guide

中查看