2

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

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

如何使用此嵌套表单功能为新照片对象创建表单部分以及编辑现有照片?

4

1 回答 1

3

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

例如,在您的控制器中,您可以执行以下操作:

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

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

于 2009-02-24T13:39:22.240 回答