首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Refile gem :多个文件上传

Refile gem :多个文件上传
EN

Stack Overflow用户
提问于 2015-07-05 08:12:05
回答 2查看 1.4K关注 0票数 13

我在Rails 4中使用Refile,我正在学习他们的multiple image upload教程。每个帖子可以有多个图像。我的模型是这样的:

Post.rb:

代码语言:javascript
复制
has_many :images, dependent: :destroy
accepts_attachments_for :images, attachment: :file

Image.rb:

代码语言:javascript
复制
belongs_to :post
attachment :file

我可以上传文件,只要使用:

代码语言:javascript
复制
<%= f.attachment_field :images_files, multiple: true, direct: true, presigned: true %>

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

代码语言:javascript
复制
 <%= attachment_image_tag(@post.images, :file, :small) %>

我得到了错误:

代码语言:javascript
复制
undefined method file for #<Image::ActiveRecord_Associations_CollectionProxy:0x007fbaf51e8ea0>

如何使用多个镜像上传来检索带有refile的镜像?

EN

回答 2

Stack Overflow用户

发布于 2015-07-05 17:42:31

为了检索属于帖子的图像,您需要迭代图像数组。

代码语言:javascript
复制
<% @post.images.each do |image| %>
  <%= attachment_image_tag(image, :file, :fill, 300, 300) %>
<% end %>

帮助器attachment_image_tag采用:

  • Refile::Attachment对象:具有附加文件的类的实例。
  • Symbol name:

附件列的名称

所以在这里,@posts.images保存了一个image对象数组。它是具有附加文件对象。

代码语言:javascript
复制
class Image < ActiveRecord::Base
  belongs_to :post
  attachment :file
end

然后,在迭代images时,将image object和附件列的名称(此处为:file )提供给帮助器。

票数 5
EN

Stack Overflow用户

发布于 2016-04-08 19:59:00

你是在主分支机构吗?

代码语言:javascript
复制
gem 'refile', require: "refile/rails", git: 'https://github.com/refile/refile.git', branch: 'master'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31226156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档