操作视图模板错误

时间:2013-09-02 10:29:33

标签: ruby-on-rails ruby-on-rails-4 actionview

在开发中它运行得很好,但在生产(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 class="clip-uploader pull-left" data-no-turbolink>
2013-09-02T10:24:09.366120+00:00 app[web.1]:     36:     <strong>
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:     </strong>
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_

为什么这会对heroku产生制动?

2 个答案:

答案 0 :(得分:2)

解决方案是,我的数据库中有一个预先存在的剪辑来自一个没有附加节目的早期版本。

P.S。 对当前问题进行解释或评论有尊严的downvoting whitout确实很糟糕。

答案 1 :(得分:0)

它清楚地提到clip.user.show不是nil,这意味着数据库中没有clip.user。如果某些值可以为零,您可以尝试: -

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