2009-02-24 60 views
2

尝试在新的rails版本候选中使用嵌套模型表单。我有这个,但它只为每个现有的相关照片对象渲染表单字段。使用Rails 2.3模型嵌套创建新关联对象的表单

(给定一个表单生成器f这是我的父模型对象创建)

%h3 Photos 

- f.fields_for :photos do |photo_form| 
    %p 
    = photo_form.label :caption 
    = photo_form.text_field :caption 

    %p 
    = photo_form.label :image_file 
    = photo_form.file_field :image_file 

我如何使用这个嵌套的表格功能创建的形式为一个新的照片对象的部分以及编辑现有照片?

回答

3

关联对象只需要在内存中存在就可以在表单中呈现,而不需要保存。所以你可以在渲染表单之前构建它们!

例如,在你的控制器,你可以这样做:

def new 
    @object = MyObject.new 
    3.times { @object.build_associated_object } 
end 

现在,当您的形式呈现,它有3个对象为显示形式!这是最简单的方法。当然,你也可以用Javascript动态添加项目。

相关问题