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

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

Мои модели такие:

class Album < ApplicationRecord
  has_many :photos,dependent: :destroy

class Photo < ApplicationRecord
  belongs_to :user
  belongs_to :album
  attachment :media

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

        <%= form_for @album, method: :put do |f| %>
          <%= f.label :name %>
          <%= f.text_field :name %>
          <div class="row">
                    <div class="col-md-4">
                        <div class="form-group">                            
                            <span class="btn btn-default btn-file">
                                <i class="fa fa-cloud-upload fa-lg"></i> Upload Photos 
                                <%= f.attachment_field :photos, multiple: true %>
                            </span>
                        </div>      
                    </div>
                </div>
          <div id="photos"><%= render 'photos/list' %></div>
          <div class="actions">
            <%= f.submit 'Save Album', class: 'btn btn-success' %>
          </div>
        <% end %>

Но я получаю эту ошибку:

NoMethodError in Albums#edit
Showing /home/ubuntu/workspace/app/views/albums/_form.html.erb where line #19 raised:

undefined method `photos_attachment_definition' for #<Album:0x007fd014d3d9e8>

Это сводит меня с ума. Кто-то есть свет на это?

Спасибо

1 Ответ

0 голосов
/ 04 сентября 2018

Проблема в том, что моя модель должна быть:

class Album < ApplicationRecord

  belongs_to :user
  has_many :photos,dependent: :destroy

  accepts_attachments_for :photos, attachment: :media

И мой взгляд:

 <%= f.attachment_field :photos_media, multiple: true, direct: true, presigned: true %>

Сейчас работает

...