Я использую 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|
Итак, какой лучший способ сделать это?
Спасибо