我正在使用 Rails 7,并且有一个带有名为“图像”的附件的模型:
IMAGE_VARIANTS = {
cover: [426, 426],
medium: [1280, 1280],
large: [1920, 1920],
full: [2560, 2560]
}
has_one_attached :image do |attachable|
for variant_name in IMAGE_VARIANTS.keys
attachable.variant variant_name, resize_to_fit: IMAGE_VARIANTS[variant_name]
end
end
如您所见,我有很多变体。 在我的一种观点中,我有一个下载每个变体的链接。例如:
<%= link_to rails_blob_path(@post.image.variant(:cover), disposition: "attachment"), class: "hover:underline" do %>
我发现每个下载链接都使用与原始上传文件相同的文件名。
如何重命名每个变体的文件?
您可以像这样设置链接格式
<%= link_to 'Cover', rails_blob_path(@post.image.variant(:cover)), download: "cover_#{@post.image.filename}" %>
download
属性指定当用户点击超链接时将下载目标(href 属性中指定的文件)。该属性的值将是文件下载后的新名称。您可以这样指定必要的文件名
注意:最好使用
each
而不是 for
循环
has_one_attached :image do |attachable|
IMAGE_VARIANTS.each do |variant_name, resize_to_fit|
attachable.variant variant_name, resize_to_fit: resize_to_fit
end
end