相册有很多图片。要在索引页面上显示我的所有相册,我想要有一张专辑第一张图片的缩略图。我想知道是否有一种方法可以从特定专辑中提取第一张图片,而不是在相册中添加附件。
这就是我目前的情况:
相册/ 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
答案 0 :(得分:1)
这应该是a.images.first.thumb
。
您尝试做的是使用first
参数调用:thumb
方法,但它接受整数limit
:http://apidock.com/rails/ActiveRecord/FinderMethods/first
编辑:工作代码为a.images.first.photo.url(:thumb)