rails 如何在动态图片资源的前面添加版本名称
How do I add a version name to the front of a dynamic image asset in rails
我有一个 rails 4 应用程序。我正在使用 Carrierwave 上传资产,它允许我保存调整大小的版本以及原始版本。如果我上传 'myimage.jpg' 它也会将 'xs_myimage.jpg' 保存到 AWS S3。问题是,xs 版本名称没有存储在任何地方,所以我不知道如何提供该图像。
这是我在视图中的图像调用:
<%= image_tag (@portfolio.img) %>
一些我想如何称呼 xs_myimage.jp:
<%= image_tag 'xs_'(@portfolio.img)%> #I know this doesn't work, its just what I've tried
尝试使用这个
<%
parts = @portfilio.img.split('/')
parts[-1]="xs_#{parts.last}"
img = parts.join('/')
%>
<%= image_tag img %>
但这是非常糟糕的解决方案。
如果 "xs" 是较小(较大)的图像尺寸,为什么不使用载波拇指?
Carrierwave
将为您声明的每个版本的资产自动生成一个 URL 助手。考虑一下:
class MyUploader < CarrierWave::Uploader::Base
version :xs do
# ...
end
end
然后您可以使用生成的助手:
uploader = MyUploader.new # or get the instance out of your model (@portfolio.img)
uploader.xs.url
在 Carrierwave 上传器中
version :xs do
process resize_to_limit: [50, 50]
end
然后在视图中
<%= image_tag(@portfolio.img.xs.url) %>
我有一个 rails 4 应用程序。我正在使用 Carrierwave 上传资产,它允许我保存调整大小的版本以及原始版本。如果我上传 'myimage.jpg' 它也会将 'xs_myimage.jpg' 保存到 AWS S3。问题是,xs 版本名称没有存储在任何地方,所以我不知道如何提供该图像。
这是我在视图中的图像调用:
<%= image_tag (@portfolio.img) %>
一些我想如何称呼 xs_myimage.jp:
<%= image_tag 'xs_'(@portfolio.img)%> #I know this doesn't work, its just what I've tried
尝试使用这个
<%
parts = @portfilio.img.split('/')
parts[-1]="xs_#{parts.last}"
img = parts.join('/')
%>
<%= image_tag img %>
但这是非常糟糕的解决方案。 如果 "xs" 是较小(较大)的图像尺寸,为什么不使用载波拇指?
Carrierwave
将为您声明的每个版本的资产自动生成一个 URL 助手。考虑一下:
class MyUploader < CarrierWave::Uploader::Base
version :xs do
# ...
end
end
然后您可以使用生成的助手:
uploader = MyUploader.new # or get the instance out of your model (@portfolio.img)
uploader.xs.url
在 Carrierwave 上传器中
version :xs do
process resize_to_limit: [50, 50]
end
然后在视图中
<%= image_tag(@portfolio.img.xs.url) %>