Подтвердить что ты не робот

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

Как я могу предотвратить тег изображения, который вызывает отображение связанного изображения, если изображение не связано с записью?

<%= image_tag @agent.avatar.url %>

... дает мне текст "Отсутствует", если нет изображения, связанного с этим агентом. Я хочу проверить, есть ли первое изображение, а затем вынести вышеприведенный тег, если тест возвращает true.

Еще лучше, есть ли в любом случае для меня указание изображения по умолчанию, если изображение не указано конкретно?

4b9b3361

Ответ 1

Я использую следующее, чтобы найти, что модель имеет соответствующее вложение:

<% if @agent.avatar.file? %>
  <%= image_tag @agent.avatar.url(:normal) %>
<% else %>
  No attachment available!
<% end %>

Ответ 2

Если аватар имеет несколько размеров:

has_attached_file :avatar, 
                  :styles => {:small => '30x30#', :large => '100x100#'}, 
                  :default_url => '/images/missing_:style.png'

для Rails 3:

has_attached_file :avatar, 
                  :styles => {:small => '30x30#', :large => '100x100#'}, 
                  :default_url => '/assets/images/missing_:style.png'

Ответ 3

Хорошо, поэтому я получил часть его.

Указание изображения по умолчанию происходит в модели

has_attached_file :avatar, :default_url => '/images/brokers/agents/anonymous_icon.jpg'

Ответ 4

Несколько байт меньше:

<% if @agent.avatar? %>
  <%= image_tag @agent.avatar.url(:normal) %>
<% else %>
  No attachment available!
<% end %>

Ответ 5

Лучше использовать: default_url, а не условия.

Ответ 6

Если в модели указан параметр default_url, вы можете использовать данный метод? чтобы проверить, является ли URL-адрес по умолчанию или загружен.

<% if @agent.avatar.present? %>
  <%= image_tag @agent.avatar.url(:normal) %>
<% else %>
  No attachment available!
<% end %>

Ответ 7

Вы можете использовать этот

user.photo.exists?(:medium).

Ответ 8

У меня также была такая же проблема раньше, но она была решена с помощью:

<% if @post.image.exists? %>
<%= image_tag @post.image.url %>
<% end %>