2012-05-01 55 views
0

我正在按照Rails指南來做多模型嵌套窗體。我有2個模型,頁面和圖片。頁面has_many圖片。我使用fields_for將圖片文件字段放在編輯頁面窗體中。定製多模式嵌套窗體行爲

每次上傳圖片時,表格都會添加一個額外的文件字段以允許上傳新圖片。

我想要的行爲是頁面窗體只有一個文件字段,它將創建一個新的圖片。我不需要以前的圖片是可編輯的。

因此,問題是1)我怎麼能做到以上? 2)我應該甚至使用嵌套形式?因爲在創建圖片時我不編輯頁面的其他部分。

回答

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 
+0

「的地方形式,無論你想,並將其發送給圖片控制器。 「 如何做到這一點? –

+0

我編輯了我的答案。請看一下。 –

+0

form_for [@page,Picture.new]就是我正在尋找的!謝謝! –