我有一个项目,每个项目都有一个字符串图像列,我在其中存储图像的路径,如assets/images/items/1.jpg
如果我致电some_item.image
,我会收到该图片的路径,例如"/assets/items/1.jpg"
如果我进入视图并写<img src="/assets/items/1.jpg">
,我会看到正确的图像。但是使用image_tag <%= image_tag(some_item.image) %>
时,图片标记的填充方式与<img src="images/assets/items/1.jpg">
一样,无法正确显示图片。
我该如何解决这个问题?
答案 0 :(得分:0)
而不是image_tag
,您应该使用image_path()
or image_url()
helpers代替。
考虑以下事项:
img = 'some_image.png'
image_tag(img) #=> <img src="some_image.png"/>
image_path(img) #=> <img src="/assets/some_image.png"/>
image_url(img) #=> <img src="http://host.ext/assets/some_image.png"/>
答案 1 :(得分:0)
我建议您在Item模型上定义一个方法,该方法返回image_tag
的有效路径:
示例:
def image_path
self.image_path.sub(/^\/assets\//, '')
# removes '/assets/' from the start of the string
# returns a String like 'items/1.png'
end
在您看来:
= image_tag(item.image_path)