簡體   English   中英

Rails 4-盡管將白名單列入白名單,但不允許使用嵌套參數的參數

[英]Rails 4 - Unpermitted parameters for nested param despite whitelisting

我有兩個模型user_itemuser_item_images

schema.rb

  create_table "user_item_images", force: :cascade do |t|
    t.integer  "user_item_id"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.string   "picture"
  end

  create_table "user_items", force: :cascade do |t|
    t.integer  "user_id"
    t.integer  "item_id"
    t.integer  "status",          default: 0
    t.boolean  "hide_banner",     default: false
    t.datetime "created_at"
    t.datetime "updated_at"
    t.string   "picture"
    t.string   "declined_reason"
  end

我有一個表單,用戶應提交一個新的user_item 表單中的唯一字段是圖片,用戶可以在其中上傳多張圖片。 成功后, user_item上傳的每個圖片創建一個新的user_item_image以及一個新的user_item_image

形成

    <%= simple_form_for :user_item, url: user_items_path, html: {multipart: true} do |user_item_builder| %>
      <%= user_item_builder.input :item_id, as: :hidden, input_html: { value: "#{@item.id}" } %>
      <%= user_item_builder.simple_fields_for :user_item_images do |user_item_images_builder| %>
        <%= user_item_images_builder.input :picture, as: :file, label: false, name: "user_item_images[picture][]", input_html: { multiple: true } %>
      <% end %>
    <% end %>

user_item_controller.rb

  def create
    @user_item = current_user.user_items.new(user_item_params)
    raise 'foo'
    if @user_item.save
      params[:user_item][:user_item_images]['picture'].each do |a|
        @user_item_image = @user_item.user_item_images.create!(:picture => a)
      end
      # Sends email to user when item request is created.
      itemMailer.user_item_submission_email(current_user, @user_item.item).deliver_later

      flash[:notice] = "Thank you for your item request!"
    else
      @user_item.errors.full_messages.each do |message|
        flash[:alert] = message
      end
    end

    redirect_to item_path(@user_item.item)
  end

  private 

  def user_item_params
    params.require(:user_item).permit(:item_id, user_item_images_attributes: [:user_item_id, :picture])
  end

user_item.rb

  belongs_to :user
  has_many :user_item_images
  mount_uploader :picture, PictureUploader

  accepts_nested_attributes_for :user_item_images

user_item_image.rb

  mount_uploader :picture, PictureUploader
  belongs_to :user_item

當我提交表單時,控制台中出現Unpermitted parameter: user_item_images ,我不知道為什么。

更改此:

    <%= ..., name: "user_item_images[picture][]", ... %>

對此:

    <%= ..., name: "user_item_images_attributes[picture][]", ... %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM