有没有简单的方法可以使用link_to_unless来排除GIF?基本上,我希望链接对于上传的GIF图像不活动/删除。
<span itemprop="photo">
<%= link_to image_tag(place.image.url(:medium)), place, class: "hover" %>
</span>
我正在使用paperclip gem for S3,这就是我在模型中添加图像的内容。我没有专门用于图像的模型。
has_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" }
validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"]
答案 0 :(得分:0)
您可以通过Attachment#content_type
方法获取内容类型。您可以测试图像是否为带有
place.image.content_type == 'image/gif'
因此你想要的是
<span itemprop="photo">
<%= link_to_unless place.image.content_type == 'image/gif', image_tag(place.image.url(:medium)), place, class: "hover" %>
</span>
link_to_unless
的第一个参数只是一个条件。在这种情况下,它会检查图片网址是否以.gif
结尾。
然而,这对于视图看起来太过逻辑。我建议把它放在装饰器中。
答案 1 :(得分:0)
使用以下代码:
<%= link_to_unless place.image.url(:medium).match(/\.gif$/), image_tag(place.image.url(:medium)), place, class: "hover" %>
或使用辅助方法如下:
def image_not_gif(url)
unless url.match(/\.gif$/)
image_tag(place.image.url(:medium)
end
end
然后使用此代码:
<%= link_to image_not_gif(place.image.url(:medium)), place, class: "hover" %>