2011-07-25 107 views
0

我曾經在軌多模型驗證錯誤後子模型,它未能在sinario正常工作Rails的多個模型(嵌套)的形式沒有顯示

<%= form_for [@listing] do |f| %> 

    <%= f.fields_for :photos do |ph| %> 

     <%= ph.file_field :data %> 

    <% end %> 

    <% end %> 

同時確認,我沒有上傳圖像(圖像是可選的)並提交表單。如果第一模型具有任何錯誤,則該形式顯示錯誤消息,在時間的形式未能顯示的第二形式(<%= ph.file_field:數據%>)輸入字段

回答

0

我想你

render "new" 

萬一發生錯誤。在渲染新視圖時,不會調用相應的控制器操作!所以你的

@listing = Listing.new(params[:listing]) 

將不會有與它相關的照片。做

@listing.build_photo # or @listing.photos.build (for has_many association) 

之前呈現新。

+0

在我的routes.rb我把資源:照片和我我的控制器我把@ listing.photos.build – arivarasan

+0

它有幫助嗎?如果沒有,你在哪個行動把@ listing.photos.build?你可以在這種情況下發布你的控制器代碼嗎?謝謝 – emrass

0
def new 

@listing = Listing.new  

1.times do 

    @listing.photos.build 

end 

respond_to do |format| 

    format.html # new.html.erb 

    format.xml { render :xml => @listing } 

end 

end 

它有助於開發而已。在生產中它並沒有幫助。即使點擊新的列表,它也不會在網上顯示照片字段。