【问题标题】:ruby page on Heroku comes up with error: 'we're sorry but something went wrong'Heroku 上的 ruby​​ 页面出现错误:'我们很抱歉,但出了点问题'
【发布时间】:2014-02-13 00:33:22
【问题描述】:

您好,上周将 ROR rake 任务推送到 prod,然后运行 ​​rake 任务以更新 heroku 中的一些表字段。 当时一切似乎都很好,但本周我做了一些我在前一周没有做过的事情,即创建一个新的练习或编辑一个错误“我们很抱歉,但出了点问题” 我在终端中运行 --tail 得到的错误消息是

Completed 500 internal server error in 34ms
ActionView::Template::Error (undefined method 'practices' for nil:NilClass);

这是我的生产应用程序。 在暂存应用程序中,我没有收到此错误。

这两个环境应该是相同的。 是否需要迁移?或者失败了,我怎么能找出问题所在。

谢谢 马格斯

【问题讨论】:

  • 你 rake db:migrate,有一个返回 nil 的对象,你正在调用 practices

标签: ruby-on-rails ruby heroku


【解决方案1】:

运行此命令并尝试

heroku run rake db:migrate

【讨论】:

  • 您好我已经运行了迁移命令 heroku run rake db:migrate 并且仍然得到相同的错误。谢谢maggs
  • 是的,我在点击新建或编辑按钮时遇到了同样的错误
【解决方案2】:

数据库

这两个环境应该是相同的。需要迁移吗?

这取决于您是否在生产和开发中使用相同的数据库

默认情况下,Heroku 给你一个空白的PGSQL database,或者你可以将他们的DATABASE_URL 配置变量覆盖为use your own db

heroku 配置:设置 DATABASE_URL=mysql://your_database


推荐

目前,我建议在您的 Heroku 数据库上执行 heroku run rake db:migrate,因为这将为您的应用提供正确的数据结构

不过,真正的问题是您在一个未定义的对象 (nil:class) 上调用 practices。为确保这不是问题,您需要一些逻辑,例如:

unless @variable.nil?
   # do something
end

或者您需要确保使用正确的数据

【讨论】:

  • 嗨,我在生产和开发中使用相同的数据库,谢谢 maggs
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-29
  • 2012-04-19
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-01
相关资源
最近更新 更多