13

我正在使用带有 Rails 4 的 Refile。我正在按照他们的教程进行多张图片上传。每个帖子可以有多个图像。我的模型如下所示:

Post.rb:

has_many :images, dependent: :destroy
accepts_attachments_for :images, attachment: :file

图片.rb:

belongs_to :post
attachment :file

我可以上传文件,很好地使用:

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

但是当我尝试检索如下图像时:

 <%= attachment_image_tag(@post.images, :file, :small) %>

我得到错误:

undefined method file for #<Image::ActiveRecord_Associations_CollectionProxy:0x007fbaf51e8ea0>

如何使用多个图像上传检索带有重新文件的图像?

4

2 回答 2

5

为了检索属于帖子的图像,您需要遍历图像数组

<% @post.images.each do |image| %>
  <%= attachment_image_tag(image, :file, :fill, 300, 300) %>
<% end %>

帮手attachment_image_tag拿:

  • [Refile::Attachment] 对象:具有附件的类的实例。
  • [Symbol] name : 附件栏的名称

所以在这里,@posts.images持有一个image对象数组。是那个有附件的对象。

class Image < ActiveRecord::Base
  belongs_to :post
  attachment :file
end

然后,当您迭代时images,您将 和附件列的名称提供给助手image object,此处为:file

于 2015-07-05T09:42:30.637 回答
0

你在master分支吗?

gem 'refile', require: "refile/rails", git: 'https://github.com/refile/refile.git', branch: 'master'
于 2016-04-08T11:58:59.847 回答