Я не знаю о пути перевода i18n для этого, но если вы не хотите, чтобы пользователи загружали файлы, отличные от изображений, вы должны использовать validates_attachment_content_type
валидатор, который дает вам скрепка:
validates_attachment_content_type :attachment, /^image.*/, :message => "Your error message"
Что будет генерировать нормальную ошибку для пользователя вместо загадочной ImageMagick.В качестве альтернативы, если вы хотите, чтобы пользователи могли загружать файлы любого типа, но стилизовать изображения определенным образом, вы можете решить вашу проблему следующим образом:
has_attached_file :attachment, :styles => {:thumbnail => ["89x67!", :jpg]}
before_post_process :image?
def image?
!!(attachment_content_type =~ /^image.*/)
end
Это позволит сделать так, чтобы все загружаемые изображения загружалисьтакже создаст миниатюру размером 89x67, но если это не тип изображения, то пропустит обработку, потому что image?
вернет false, а post_process
не будет выполнено (но файл все равно будет загружен).
Это добавляет преимущество, заключающееся в том, что вы можете сказать asset.image?
позже в представлении или чем-то подобном и решить, следует ли отображать его в теге image_tag или как прямую ссылку (например, только).