我正在按照Rails指南进行多模型嵌套表单。我有2个模型,页面和图片。 Page has_many图片。我使用fields_for将“图片文件”字段放在“编辑页面”表单中。
每次上传图片时,表单都会添加一个额外的文件字段,以允许上传新图片。
我想要的行为是页面表单只有一个文件字段,它将创建一个新的图片。我不需要以前的图片可以编辑。
这样的问题是1)我怎么能做到这一点? 2)我应该使用嵌套表格吗?因为我在创建图片时没有编辑页面的其他部分。
答案 0 :(得分: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