这不是问题,但希望有人能从中受益。轨道中的一对多嵌套属性
当您尝试创建或修改一对多嵌套关联时,请确保您传递的是数组。 如果您收到
NoMethodError(未定义的方法`[]”的......
和你有一个一对多的嵌套的关联,这可能是你的问题的工作。 寻找这个错误时,那么也许这将有助于加快别人的发展中,我没有找到对此的解释。
例如,我有
has_many :person_images
accepts_nested_attributes_for :person_images
一个Person模型
为了创建一个新人和关联的person_image,我做了以下工作。
@person = Person.create(:full_name=>@person_name, :person_images_attributes=>[{:image=>person_image}])
注意[]围绕{:image => person_image}。如果你有一对多的话,你必须拥有这个。所以下面的方法不起作用,并产生未定义的方法'[]'错误。
@person = Person.create(:full_name=>@person_name, :person_images_attributes=>{:image=>person_image})
而且,在我的意见,我不得不名字我输入这样的
<input type="file" name="person[person_images_attributes][0][image]">
它不没有工作[0]。
我是新来的Rails。我希望这有助于其他初学者,如果有人有更好的解释或更有效的方式来做到这一点,我会很感激你的意见。
详见 Rails API on Nested Attributes
这只是令人困惑,我需要阅读所有这些笔记发现你在这里没有任何问题。 – m4risU 2011-03-02 09:44:36
谢谢m4risU。已编辑清楚。 – NAD 2011-03-04 10:21:18