2

我正在使用 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>

这真让我抓狂。有人开灯吗?

谢谢

4

1 回答 1

1

这里的问题是我的模型应该是:

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

现在正在工作

于 2018-09-04T20:20:54.760 回答