加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails – Paperclip – 如何在保存前检查图像

发布时间:2020-12-16 20:01:40 所属栏目:百科 来源:网络整理
导读:我有一个Rails 3应用程序与回形针. 我想防止使用剪贴画保存宽带/高度的LTE 50×50的图像. 这可能吗? 解决方法 是的!这是我为我的应用程序编写的一个自定义验证,它应该在您的应用中逐字逐行,只需将像素设置为任何您想要的. def file_dimensions dimensions
我有一个Rails 3应用程序与回形针.
我想防止使用剪贴画保存宽带/高度的LTE 50×50的图像.

这可能吗?

解决方法

是的!这是我为我的应用程序编写的一个自定义验证,它应该在您的应用中逐字逐行,只需将像素设置为任何您想要的.
def file_dimensions
  dimensions = Paperclip::Geometry.from_file(file.queued_for_write[:original].path)
  self.width = dimensions.width
  self.height = dimensions.height
  if dimensions.width < 50 && dimensions.height < 50
    errors.add(:file,'Width or height must be at least 50px')
  end
end

有一件事要注意,我使用self.width =和self.height =为了将维度保存到数据库,如果不在乎存储图像尺寸,可以将它们保留下来.

检查宽度和高度意味着只有一个必须大于50像素.如果你想确保BOTH超过50,讽刺的是,需要检查宽度或高度.对我来说似乎很奇怪,一个或另一个意思是一个AND检查,两者都意味着OR,但在这种情况下是正确的.

唯一的其他问题是,您需要运行此验证LAST:如果模型上已经有其他错误,它将引发异常.说实话,这是一段时间,所以我不记得错误信息是什么,但在你的验证宏使用这个:

validate :file_dimensions,:unless => "errors.any?"

这应该照顾它!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读