我有一个使用paperclip的rails 3应用程序。如果附件是一张图片,而且图片的宽度或高度小于100像素,我想跳过保存。
在模型中,我有以下内容:
validate :file_dimensions, :unless => "errors.any?"
def file_dimensions
dimensions = Paperclip::Geometry.from_file(attachment.to_file(:original))
if dimensions.width < 100 || dimensions.height < 100
errors.add(:file,'Width or height must be at least 100px')
end
end
问题是我不想因为一个错误而导致整个任务失败,我只希望Paperclip跳过保存该附件,并且不会停止整个过程。
:before_validate
得到了一个method_missing
错误。最终我使用:before_validation
来获得相同的功能。http://ar.rubyonrails.org/classes/ActiveRecord/Callbacks.html#M000064 - kelly.dunn