我的Rails控制器中出现不允许的参数消息

时间:2018-11-21 16:35:20

标签: ruby-on-rails

在我的应用中,我正在为用户创建相册,并向其中上传一些图片。

这是我的观点:

<%= form_for @album do |f| %>
  <div class="col-9">
    <div class="form-group row">
      <div class="col-6">
        <label for="">Add or drag photos here: </label>
        <%= f.attachment_field :photos_media, multiple: true, direct: true, presigned: true %>
      </div>
    </div>
  </div>
<% end %>

在我的控制器中,我有:

def create
  @album = current_user.albums.build(album_params)

  logger.debug("******ALBUM PARAMS*** #{album_params} ")

  if @album.save
    if params[:album][:photos_media].size > 1 
      params[:album][:photos_media][1..-1].each do |image|
        @album.photos.create(media: image, user: current_user)
      end
    end

    @photos = @album.photos
    redirect_to profile_edit_profile_albums_path
  else
    redirect_to profile_edit_profile_albums_path
  end
end

def album_params
  params.require(:album).permit(:name, :photos_media )
end

当我尝试创建新专辑时,我收到一条消息:

Unpermitted parameter: :photos_media

这是怎么了?

2 个答案:

答案 0 :(得分:0)

尝试添加这样的私有范围

private
  def album_params
    params.require(:album).permit(:name, :photos_media)
  end

答案 1 :(得分:0)

看起来您的photos_media参数是一个数组。如果是这种情况,则需要指出您接受这样的数组:

def album_params
  params.require(:album).permit(:name, photos_media: [] )
end