清理Paperclip错误消息
好的,所以我有回形针工作,我正在尝试使用内置的validation器来确保上传的文件
- 是一个图像
- 不是太大了
所以我在模型中有这个,根据文档:
validates_attachment :avatar, :content_type => { :content_type => /image/ }, :size => { :in => 0..2.megabytes }
但是它在视图中显示的错误是这个混乱:
我希望它有点简单,比如“阿凡达必须是一个小于2兆字节的图像”
但是,我无法看到在哪里这样做,因为传递:message => 'something'
会抛出错误Unknown validator: 'MessageValidator'
我该如何清理呢?
请注意,上传小图片的快乐路径可以正常工作。
一些进一步的测试表明,上传太大的图像(如桌面背景)或非.rb文件的内容会更优雅地失败,但根本不会显示任何错误消息。 仍然不是我想要的。
显然你很久以前就已经为自己解决了这个问题,但是对于那些正在寻找答案的人来说,实际上有一种方法可以在提供的validation中做到这一点。
简单地添加你的消息,如下:
validates_attachment :avatar, :content_type => { :content_type => /image/, :message => "Avatar must be an image" }, :size => { :in => 0..2.megabytes, :message => "Avatar must be less than 2 megabytes in size" }
我最后写了两个自定义validation器。 确实,这些回形针validation器做了同样的事情,但它们更加漂亮:
def avatar_is_a_image if self.avatar? if !self.avatar.content_type.match(/image/) errors.add(:avatar, "Avatar must be an image") end end end def avatar_is_less_than_two_megabytes if self.avatar? if self.avatar.size > 5.megabytes errors.add(:avatar, "Avatar must be less than 5 megabytes in size") end end end