确定具有特定风格的图像存在和不存在 - 回形针导轨

Posted

技术标签:

【中文标题】确定具有特定风格的图像存在和不存在 - 回形针导轨【英文标题】:Determining Image presence and absence that has certain style - Paperclip rails 【发布时间】:2012-11-24 15:28:05 【问题描述】:

有没有办法确定给定图像样式的存在?

例如判断图像是否存在,我们可以这样做:

    <% if @user.avatar.exists? %>
      <%= image_tag @user.avatar.url(:large), :id => "cropbox" %>  

但是我们如何确定图像是否以特定的风格存在,例如thumb?。上述条件仅确定图片是否存在其original 样式。

【问题讨论】:

您是否在问如何使用回形针更改照片的样式/尺寸? 不,我问的是如何知道特定用户的特定样式的特定图像是否存在。 @user.avatar你试过了吗 对不起,我会扩大,看答案 您应该使用辅助方法,而不是将该条件逻辑放入您的 ERB 模板中。 @alex-peattie 正确回答了下面的问题。 【参考方案1】:

.exists? 函数可选地采用 style_name:

<% if @user.avatar.exists?(:large) %>

应该可以。

【讨论】:

请注意,这实际上会检查文件是否存在。即,如果您将文件存储在 S3 中,服务器上将会调用 S3,这会大大降低视图渲染速度,尤其是当您使用此代码在页面上有多个图像时。 鉴于我阅读问题的方式,这应该是公认的答案。【参考方案2】:

试试这样的

<% if @user.avatar(params[:large]) %><%= image_tag @user.avatar.url(:large), :id => "cropbox" %><% end %>

【讨论】:

if @user.avatar 正在检查哪个样式的图像?原始、大或拇指。 好吧,我的解释是它会检查任何图像,但我刚刚意识到您想检查特定尺寸,不是吗?对不起,我已经编辑了我会尝试的答案

以上是关于确定具有特定风格的图像存在和不存在 - 回形针导轨的主要内容,如果未能解决你的问题,请参考以下文章

带导轨的图像/照片库(网格视图)?

显示使用回形针导轨上传的文档

导轨 3.1。 Heroku PGError:运算符不存在:字符变化=整数

保存多个文件而不替换存在的文件

如何将 RShiny reactiveFileReader 与 reactiveUI 和不存在的文件一起使用?

赛格存在吗?