Как сохранить несколько фотографий в альбоме с помощью refile? - PullRequest
0 голосов
/ 11 декабря 2018

Я использую refile для создания приложения, в котором пользователь может создавать несколько альбомов.Это мои модели:

class Album < ApplicationRecord

  belongs_to :user
  has_many :photos,dependent: :destroy

  accepts_attachments_for :photos, attachment: :media

class Photo < ApplicationRecord

  belongs_to :user
  belongs_to :album, required: false

И, на мой взгляд, у меня есть:

<%= form_for @album do |f| %>
           <div class="col-9">
             <div class="form-group row" >
               <div class="col-6">
                <label for="">Name:</label>
                <%= f.text_field :name %>
              </div>
             </div>
           </div>
          <div class="col-9">
             <div class="form-group row" >
              <div>

                        <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>

Но я не знаю, как сохранить каждую фотографию на моем контроллере, чтобы связать это с моим альбомом.На данный момент я делаю это:

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

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

Но это показывает ошибку "[" Фотографии недействительны "]

Ну, я не знаю, что происходит, и мне тоже не нравится этострока кода здесь:

params[:album][:photos_media][1..-1].each do |image|

Итак, какой лучший способ сделать это?

Спасибо

...