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>

複数の画像のアップロードを使用して refile で画像を取得するにはどうすればよいですか?

4

2 に答える 2

5

投稿に属する画像を取得するには、画像の配列を反復処理する必要があります。

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

ヘルパーは次のattachment_image_tagことを行います。

  • [Refile::Attachment] object :添付ファイルを持つクラスのインスタンス。
  • 【記号】 name : 添付欄の名称

ここでは、オブジェクト@posts.imagesの配列を保持しimageます。ファイルが添付されているのはそのオブジェクトです。

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

次に、 を反復するときに、 と、添付列の名前 here をimagesヘルパーに渡します。image object:file

于 2015-07-05T09:42:30.637 に答える
0

あなたはマスターブランチにいますか?

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