Сообщение о недопустимых параметрах в моем контроллере rails - PullRequest
0 голосов
/ 21 ноября 2018

В моем приложении я создаю альбом, чтобы пользователь загружал на него несколько картинок.

Это мой взгляд:

<%= 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 голосов
/ 21 ноября 2018

Похоже, ваш photos_media параметр является массивом.Если это так, вам нужно указать, что вы принимаете массив, подобный этому:

def album_params
  params.require(:album).permit(:name, photos_media: [] )
end
0 голосов
/ 21 ноября 2018

Попробуйте добавить частную сферу, как это

private
  def album_params
    params.require(:album).permit(:name, :photos_media)
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...