Rails 3 - как скрыть графику, если файл отсутствует? - PullRequest
0 голосов
/ 26 марта 2011

Не уверен, что я делаю неправильно, но у меня возникают проблемы с синтаксисом! = Nil в нескольких местах моего приложения. В этом примере я хочу показать значок со ссылками, только если в базе данных есть гиперссылка. К сожалению, значки показывают, на мой взгляд, являются ли URL-адреса пустыми / ноль.

<% if @host.home_url != nil  %>
    <%= link_to(image_tag("icon_website_32.png", :border=>0), @host.home_url) %>
<% end %>

У меня та же проблема при попытке скрыть вторую строку адреса, если ее нет:

<% if location.street_address2 != nil  %>
     <%= location.street_address2 %><br />
<% end %>

Какой-нибудь совет для маркетолога, ставшего новичком-программистом?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 26 марта 2011

Вы можете использовать present? метод здесь.И вы можете использовать его в строке

<%= link_to image_tag("icon_website_32.png", :border=>0), @host.home_url if @host.home_url.present? %>
1 голос
/ 26 марта 2011

Rails добавляет метод с именем blank?, чтобы проверить, является ли значение ноль или пустая строка, поэтому ...

<% unless @host.home_url.blank? %>
  <%= link_to(image_tag("icon_website_32.png", :border=>0), @host.home_url) %>
<% end %>

Чтобы почувствовать это, поиграйте с ним в консоли Rails (script/console в Rails 2.x или rails console в Rails 3).

>> nil.blank?
=> true
>> ''.blank?
=> true
>> 'abc'.blank?
=> false

Кстати, вы обычно проверяете, что обычный Ruby не ноль в Ruby, используя !var.nil? вместо 'var! = Nil`.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...