您好,在上周将一个ROR rake任务推送到prod,然后运行rake任务来更新heroku中的一些表字段。 当时一切似乎都很好,但是本周我做了一些我在前一周没有做过的创建新练习或编辑的做法,给出了“我们很抱歉但出了问题”的错误 我从终端运行--tail得到的错误消息说
Completed 500 internal server error in 34ms
ActionView::Template::Error (undefined method 'practices' for nil:NilClass);
这是我的生产应用程序。 在登台应用程序中,我没有收到此错误。
两个环境应该是相同的。 是否需要迁移?或者说我怎么能弄清楚出了什么问题。
感谢 梅格斯
答案 0 :(得分:0)
运行此命令并尝试
heroku run rake db:migrate
答案 1 :(得分:0)
<强>数据库强>
两个环境应该是相同的。是否需要迁移?
这取决于你是否在生产中使用相同的数据库&amp;发展
默认情况下,Heroku会为您提供空白PGSQL database,或者您可以将其DATABASE_URL
配置变量覆盖为use your own db:
heroku config:设置DATABASE_URL = mysql:// your_database
<强>建议强>
目前,我建议您在Heroku数据库上执行heroku run rake db:migrate
,因为这会为您的应用提供正确的数据结构
但真正的问题是,您是在未定义的对象(practices
)上调用nil:class
。要确保这不是问题,您需要一些逻辑,例如:
unless @variable.nil?
# do something
end
或者您需要确保使用正确的数据