Отображение сообщения, если нет фотографии - PullRequest
0 голосов
/ 14 мая 2010

Я использую код:

<%= image_tag site.photo.url(:small) if site.photo.file? %>

, чтобы сообщить моему приложению, что ничего не отображается, если с конкретным сообщением нет фотографии (в данном случае это сайт) Есть ли способ сделать сообщение вместе с этим? Например "нет изображения с постом". Я пытался просто сделать

<%= if site.photo.file? %>
  <p> no image with this site </p>
<% end %> 

Но это не похоже на работу. Новичок в рубине и рельсах, если вы не можете сказать.

Ответы [ 4 ]

4 голосов
/ 14 мая 2010

Ваш код будет выводить no image with this site при наличии фотографии.Используйте это вместо:

<% unless site.photo.file? %>
  <p> no image with this site </p>
<% end %>

или даже лучше:

<% if site.photo.file? %>
  <%= image_tag site.photo.url(:small) %>
<% else %>
  <p> no image with this site </p>
<% end %>
2 голосов
/ 14 мая 2010

Реально простым способом было бы создать маленького маленького помощника:

def show_photo_if_exists(photo)
  photo.file? ? image_tag photo.url(:small) : "No image with this site"
end

Тогда по вашему мнению звоните:

<%= show_photo_if_exists(site.photo) %>
1 голос
/ 14 мая 2010

Вы на правильном пути, но вам не хватает логики, которую вы хотите отобразить, только если site.photo.file? возвращает false, поэтому вам нужно использовать это в вашем представлении:

<%= if !site.photo.file? %>
  <p> no image with this site </p>
<% end %> 

(обратите внимание на удар! Перед site.photo.file?, Который изменит логику.)

1 голос
/ 14 мая 2010
<%= image_tag(site.photo.url(:small)) rescue "<p>No image</p>" %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...