【问题标题】:Rails multiple models (nested) form not showing the child model after validation errorRails 多个模型(嵌套)表单在验证错误后不显示子模型
【发布时间】:2011-07-25 08:36:44
【问题描述】:

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

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

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

      <%= ph.file_field :data %>

    <% end %>

  <% end %>

验证时,我没有上传图片(图片是可选的)并提交表单。如果第一个模型有任何错误,那么表单会显示错误消息,此时表单无法显示第二个表单的输入字段()

【问题讨论】:

    标签: ruby-on-rails validation


    【解决方案1】:

    我猜你

    render "new"
    

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

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

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

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

    在渲染新之前。

    【讨论】:

    • 在我的 routes.rb 我把资源:照片和我的控制器我把@listing.photos.build
    • 它有帮助吗?如果没有,您将@listing.photos.build 放在哪个操作中?在这种情况下,您能否发布您的控制器代码?谢谢
    【解决方案2】:
    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
    

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

    【讨论】:

      猜你喜欢
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      相关资源
      最近更新 更多