我正在创建一个图片库网站,并遇到一些问题。我试着搜索,但这很难,因为我无法真正描述这个问题。
我希望在我的索引页面上有缩略图,但我无法使其正常工作。
为什么这个代码在/views/index.html.erb
中 <% @galleries.each do |gallery| %>
<%= image_tag gallery.photos(:small).last %>
<%= link_to gallery.title, gallery_path(gallery) %>
不会向我显示照片,只会显示照片应该出现的空白区域。当我右键单击它们以在新选项卡中打开时,它会链接到/ images /#.....并给出无路由错误。
在show.html.erb图片上显示以下代码:
<% @gallery.photos.each do |photo|%>
<%= image_tag photo.image(:medium) %>
<% end %>
模特是:画廊有很多照片,照片属于画廊。
画廊控制器: def指数 @galleries = Gallery.all.order(created_at :: desc) 结束
def show
@gallery = Gallery.find(params[:id])
end
路线: 资源:画廊 资源:照片
答案 0 :(得分:1)
@rubynuby:试试这个:
<% @galleries.each do |gallery| %>
<%= image_tag gallery.photos.last.image.url(:small) %>
<%= link_to gallery.title, gallery_path(gallery) %>
正如我观察到的那样,你的问题是:
in models / gallery.rb
class Gallery
has_many :photos
end
in models / photo.rb
class Photo
belongs_to :gallery
has_attached_file :image, styles: {
small: '150x150>',
medium: '600X600>'
}
end
根据您的要求,您需要在照片上致电image
,即photo.image.url(<style>)