我正在尝试将我“存储”在数据库中的特定类型的图像显示到视图上。我有一个“产品”模型和一个“图像”模型,因为每种产品都有几种类型的图像(例如“图库”,“精选”和“拆箱图像”,这些图像简单地存储为类型0的属性) ,1或2)
我将其放入HTML中:
<%= image_tag @product.images.where(image_type: 2).first, :alt => 'product_image' %>
单击检查元素时,我看到以下内容:
<img alt="product_image" src="/images/#<Image:0x007fcba329f4c0>">
有人可以解释为什么发生了什么吗?看起来好像是在我的assets / images文件夹中搜索图像,但是其中的#<等是什么?我的图像像lamp.png这样存储在数据库中。
这是我的图像模型:
class Image < ActiveRecord::Base
include AASM
belongs_to :product
mount_uploader :file, FileUploader
validates :image_type, presence: true
enum image_type: [IMAGE_UNBOXING.to_s, IMAGE_GALLERY.to_s, IMAGE_FEATURED.to_s]
aasm column: :image_type do
Image.image_types.keys.each do |state_string|
state state_string.to_sym
end
end
end
谢谢你。
@product.images.where(image_type: 2).first
从数据库返回第一条记录,但是对于image_tag
您应该指定url
或path
对于返回的记录。
使用url
属性或您拥有的内容:
<%= image_tag @product.images.where(image_type: 2).first.url, :alt => 'product_image' %>
^^^
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句