2010-02-25 50 views
1

好時,所以我有這些2類HashWithIndifferentAccess保存對象的陣列

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) 

可能有人給我介紹什麼是怎麼回事?以及如何解決這個問題?

回答

2

update_attributes方法更新模型屬性..你要更新另一個模型屬性(接口類),你想使用嵌套的表格& accepts_nested_attributes_for

- 你可以在這個guide

+0

也就是說怎麼看正是我正在尋找的!謝謝! – Taka 2010-02-25 09:52:55

+0

不要忘記在表單中使用interface_attributes而不是interfaces []。 – nanda 2010-02-25 11:32:45

+0

會做。謝謝! – Taka 2010-02-26 00:20:57