Rails обрабатывает .Erb с Nils - PullRequest
       10

Rails обрабатывает .Erb с Nils

5 голосов
/ 25 апреля 2010

продолжает приносить мне горе, когда профиль ноль ... что я могу сделать?

Ответы [ 3 ]

7 голосов
/ 25 апреля 2010

Всегда проверяйте, является ли переменная nil, прежде чем использовать ее в представлении.

<% image_tag this.profile.expiring_url(180) unless this.profile.nil? %>

Я уверен, что есть более элегантное решение проблемы, но это должно помочь вам начать.

6 голосов
/ 26 апреля 2010

Это тоже должно работать

<%= image_tag(this.profile.expiring_url(180)) rescue "no image!" %>
2 голосов
/ 26 апреля 2010

Сначала вам нужно решить, что вы хотите делать, когда нет профиля. Хотите отобразить изображение по умолчанию? Нет изображения вообще?

Предполагая, что вы хотите отобразить изображение по умолчанию, вы можете добавить метод к вашему помощнику:

def expiration_url_for( profile )
  (profile && profile.expiring_url(180)) || default_url
end

и затем вызовите этот вспомогательный метод в вашем представлении:

<%=image_tag expiration_url_for( this.profile )%>
...