Rails 4:如何从索引页面的专辑(父)获取第一个图像(子)

时间:2016-10-29 22:03:18

标签: ruby-on-rails-4 iteration

相册有很多图片。要在索引页面上显示我的所有相册,我想要有一张专辑第一张图片的缩略图。我想知道是否有一种方法可以从特定专辑中提取第一张图片,而不是在相册中添加附件。

这就是我目前的情况:

相册/ index.html.erb

<% @albums.each do |a| %>
   <div class="thumbnail">
      <%= link_to image_tag(a.images.first(:thumb)), a %>                     
         <div class="caption">
            <h3><%= a.title %></h3>
               <p><%= a.description %></p>
         </div>
    </div>
<% end %>

模型/ image.rb

class Image < ActiveRecord::Base

 belongs_to :album

 has_attached_file :photo, 
 styles: { large: "700x700>", medium: "450>", thumb: "200x200>" },
 storage: :s3,
 s3_credentials: Proc.new{ |a| a.instance.s3_credentials }

 validates_attachment_content_type :photo, content_type: /\Aimage\/.*\Z/

 validates_presence_of :title
 validates_presence_of :album_id

 def s3_credentials
    {
      access_key_id:     ENV["AWS_ACCESS_KEY_ID"],
      secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"],
      s3_region:         ENV["AWS_REGION"],
      bucket:            ENV["S3_BUCKET_NAME"]
    }
 end
end

我收到错误&#34;无法将符号转换为整数&#34;指向image_tag

的行

1 个答案:

答案 0 :(得分:1)

这应该是a.images.first.thumb

您尝试做的是使用first参数调用:thumb方法,但它接受整数limithttp://apidock.com/rails/ActiveRecord/FinderMethods/first

编辑:工作代码为a.images.first.photo.url(:thumb)