Отображать загруженную пользователем фотографию, только если она существует в рельсах - PullRequest
2 голосов
/ 26 июля 2011
<%= image_tag message.photo.url(:small) %>

У меня установлен скрепка, и в приведенном выше коде отображается изображение, которое пользователь загружает, размер которого был изменен: маленький (в данном случае 40x40px. Как я могу заставить мою страницу отображать это изображение, только если оно существует? В настоящее время, если сообщение включает в себя фотографию, которая отображается, но все остальные сообщения содержат неработающие ссылки на изображения. Спасибо

Ответы [ 2 ]

2 голосов
/ 26 июля 2011

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

<%= message.photo? ? image_tag message.photo.url(:small) : "" %>

Или, если вы хотите показать изображение по умолчанию без изображения, когда изображения нет ...

<%= image_tag message.photo? ? message.photo.url(:small) : url_to_no-image_image %>
1 голос
/ 26 июля 2011

Прошло много времени с тех пор, как я использовал рельсы, но разве недостаточно просто вставить оператор if?

...