【问题标题】:Action View Template Error操作视图模板错误
【发布时间】:2013-09-05 10:21:07
【问题描述】:

在开发中它工作得很好,但在生产 (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 上刹车?

【问题讨论】:

  • 如何在开发和生产中播种数据?

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 但要使剪辑存在,就必须有表演。用户不能上传没有节目的剪辑。
    • 哦!那么关联肯定有一些问题。你没有正确使用它。请在此处发布您的模型。
    • 好吧,我找到了它,由于某种原因,以前版本的现有剪辑中存在未显示的剪辑:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 2014-07-30
    • 2020-06-30
    • 1970-01-01
    • 2014-04-03
    • 2015-08-04
    • 2014-05-21
    相关资源
    最近更新 更多