Направляющие, обрабатывающие.Erb с Nils

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

5
задан hello_there_andy 18 May 2015 в 19:34
поделиться

3 ответа

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

<%= image_tag(this.profile.expiring_url(180)) rescue "no image!" %>
6
ответ дан 18 December 2019 в 11:54
поделиться

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

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

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

7
ответ дан 18 December 2019 в 11:54
поделиться

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

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

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

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

<%=image_tag expiration_url_for( this.profile )%>
2
ответ дан 18 December 2019 в 11:54
поделиться