【问题标题】:Customizing multi-model nested form behavior自定义多模型嵌套表单行为
【发布时间】:2012-05-01 05:23:58
【问题描述】:

我正在按照 Rails 指南进行多模型嵌套表单。我有 2 个模型,页面和图片。页面 has_many 图片。我正在使用 fields_for 将图片文件字段放入编辑页面表单中。

每次我上传图片时,表单都会添加一个额外的文件字段以允许上传新图片。

我想要的行为是页面表单始终只有一个文件字段,它将创建一个新图片。我不需要以前的图片即可编辑。

因此问题是 1) 我该怎么做? 2)我什至应该使用嵌套形式吗?因为我在创建图片时没有编辑页面的其他部分。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 carrierwave


    【解决方案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
    

    【讨论】:

    • "将表格放置在您想要的任何位置并将其发送到图片控制器。"如何做到这一点?
    • form_for [@page, Picture.new] 正是我想要的!谢谢!
    猜你喜欢
    • 2022-01-11
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多