Как узнать, было ли загружено изображение или нет? - Скрепка для бумаг - PullRequest
8 голосов
/ 08 апреля 2011

знаете ли вы, есть ли способ узнать, было ли загружено изображение?

Я имею в виду, у меня есть класс Foo_Class, и у этого класса может быть прикрепленное изображение, но его присутствие не является необходимым.Есть ли способ узнать, есть ли у определенного экземпляра этого класса изображение или нет?

Спасибо!

Ответы [ 5 ]

11 голосов
/ 27 мая 2011

Если foo.image? возвращает true, то файл загружен.

8 голосов
/ 08 апреля 2011

Когда вы добавили скрепку к вашей модели, вы добавили ряды, специфичные для скрепки, мои

cover_file_name
cover_content_type
cover_file_size
cover_updated_at

Тогда я проверяю, ноль это или нет

 Foo_Class.cover_file_name.nil? 
6 голосов
/ 01 октября 2014

Я думаю, что правильным решением является использование метода file?.

foo.image.file?

http://rdoc.info/github/thoughtbot/paperclip/Paperclip/Attachment#file%3F-instance_method

использование существует?сделает запрос к серверу, чтобы проверить, есть ли файл, который может быть довольно медленным, особенно если он находится на другом сервере или на S3.

с использованием foo.image_file_name.nil?это наверное тоже самое что и файл?под прикрытием, но вы не хотите зависеть от реализации скрепки, которая может когда-нибудь измениться.

1 голос
/ 13 апреля 2015

Если это в моей модели

has_attached_file :avatar, :styles => {:logo => "230x50>", :card_image => "180x50>"}

Вы можете проверить, загружено ли изображение для пользователя i.e @ user

<%= @user.avatar.exists? %>

Возвращает логическое значение.

0 голосов
/ 18 августа 2016

Предположим, вы хотите проверить наличие вложения (изображения) для 1-го ряда в модели Foo:

image_present = Foo.first.image?

Возвращает true, если вложение присутствует.

...