Ошибка шаблона действия

В разработке он работает отлично, но на Production (Heroku) он ломается со следующей ошибкой.

Ошибка в действительности

<%= link_to clip.user.show.name, clip.user.show %>

Журнал ошибок:

ActionView::Template::Error (undefined method 'name' for nil:NilClass):
2013-09-02T10:24:09.366120+00:00 app[web.1]: 34:
2013-09-02T10:24:09.366120+00:00 app[web.1]: 35: <p data-no-turbolink="">
2013-09-02T10:24:09.366120+00:00 app[web.1]: 36: <span>
2013-09-02T10:24:09.366120+00:00 app[web.1]: 37: <%= link_to clip.user.show.name, clip.user.show %>
2013-09-02T10:24:09.366120+00:00 app[web.1]: 38: </span>
2013-09-02T10:24:09.366120+00:00 app[web.1]: 39: </p>
2013-09-02T10:24:09.366120+00:00 app[web.1]: 40:
2013-09-02T10:24:09.366120+00:00 app[web.1]: app/views/clips/_clip.html.erb:37:in '_app_views_clips__clip_html_erb_

Почему этот тормоз на герою?

2 ответа

Решение состояло в том, что у меня было 1 ранее существовавший клип в моей базе данных с очень ранней версии, которая не показывалась.

PS Даунвотируя без достоинства, чтобы объяснить или прокомментировать текущую проблему, терпимо.


В нем ясно упоминается, что clip.user.show не равен нулю, что означает, что clip.user не существует в базе данных. Если это может быть нуль для некоторых значений, вы можете попробовать следующее:

<%if clip.user.show.present?%>
<%= link_to clip.user.show.name, clip.user.show %>
<%end%>

licensed under cc by-sa 3.0 with attribution.