0

我正在按照 Rails 指南进行多模型嵌套表单。我有 2 个模型,页面和图片。页面 has_many 图片。我正在使用 fields_for 将图片文件字段放入编辑页面表单中。

每次我上传图片时,表单都会添加一个额外的文件字段以允许上传新图片。

我想要的行为是页面表单始终只有一个文件字段,它将创建一个新图片。我不需要以前的图片可编辑。

因此,问题是 1)我该怎么做?2)我什至应该使用嵌套形式吗?因为我在创建图片时没有编辑页面的其他部分。

4

1 回答 1

1

您可以使用:

#routes.rb
resources pages do
  resources pictures
end

#PicturesController.new
@picture = Picture.new

#views/pictures/new.haml
= form_for @picture 
#form code here

或者您可以将表单放置在任何您想要的位置并将其发送到图片控制器:

#views/pages/show.haml
= form_for [@page, Picture.new] do |f|
  = f.hidden_field :page_id, :value => @page.id
  = f.file_field :file #change to your own
  = f.button :submit

#PicturesController
def create
  @picture = Picture.new(params[:picture])
  if @picture.save
    redirect_to :back, :notice => "success"
  else
    #some code
  end
end
于 2012-05-01T06:04:14.447 回答