2015-05-02 3 views
0

Использование Carrierwave и Fog для загрузки изображений на S3, я хочу проверить, существует ли версия изображения.Проверьте, существует ли версия изображения Carrierwave

Я использую этот код (вдохновленный этой answer), чтобы проверить, если он существует, или не

- if post.image_url(:thumb).file.exists? 
    .media-cover{:style => "background-image: url(#{post.image_url(:thumb)}"} 

Но я получаю эту ошибку

NoMethodError at/

undefined method `file' for #<String:0x007fb7ab7af980> 

я могу получить доступ к версии по умолчанию с post.image_url

ответ

1

Ну, очевидно, это возвращает: thumb image_url, а не сама версия, поэтому вы не можете получить файл. Вы можете просто проверить с:

существует
post.thumb.file.exists? 

ли файл большого пальца, а затем использовать помощник URL-адрес

+0

Я попробовал это, но я получаю 'неопределенный метод большого пальца for', как не существует' thumb' метод прилагается к почтовый объект. –

+0

У вас есть запись для: большого пальца (размер/соотношение и т. Д.) В настройке CarrierWave? Название может быть любым, что вы выбрали; не просто: большой палец. –

+0

@MattDarby Да, это моя установка для ': thumb' как' версия: thumb do процесс: resize_to_fit => [312, 170] end' –

Смежные вопросы