Rails多个模型(嵌套)形式在验证错误后不显示子模型

时间:2011-07-25 08:36:44

标签: ruby-on-rails validation multiple-models

我在rails中使用了多个模型,但它无法在sinario中正常工作

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

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

      <%= ph.file_field :data %>

    <% end %>

  <% end %>

验证时,我没有上传图片(图片是可选图片)并提交表格。如果第一个模型有任何错误,那么表单显示错误消息,在表单无法显示第二个表单的输入字段时(&lt;%= ph.file_field:data%&gt;)

2 个答案:

答案 0 :(得分:0)

我猜你

render "new"

如果出现错误。渲染新视图时,不会调用相应的控制器操作!所以你的

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

不会有与之相关的照片。做

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

在渲染新内容之前。

答案 1 :(得分: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

它只对开发有帮助。在生产中它没有帮助。在线即使点击新列表,它也不会显示照片字段。