我有一个完美的Rails应用程序正在开发和测试。在heroku上部署时没有报告任何问题,但应用程序无论如何都不会工作。在浏览器中打开它只会提供:
我们很抱歉,但出了点问题。 如果您是应用程序所有者,请检查日志以获取更多信息。"
在日志中我看到一个pg表达式,它适用于我的变量/ table" countries"虽然我不太熟悉其含义:
app[web.1]: pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
app[web.1]: FROM pg_attribute a LEFT JOIN pg_attrdef d
app[web.1]: WHERE a.attrelid = '"countries"'::regclass
app[web.1]: AND a.attnum > 0 AND NOT a.attisdropped
app[web.1]: ORDER BY a.attnum
app[web.1]: app/controllers/application_controller.rb:15:in `default_or_selected_country'
app[web.1]:
heroku[router]: at=info method=GET path="/" host=evening-refuge-96756.herokuapp.com request_id=a240125e-4115-40d4-bfb0-ade1b8c909d6 fwd="178.165.130.180" dyno=web.1 connect=1ms service=204ms status=500 bytes=1714
我看到我的方法`default_or_selected_country'参与。相应的代码在开发和测试模式中没有问题:
def default_or_selected_country
session[:country_id] ||= Country.find_by(abbreviation: "AT").id
@default_or_selected_country = Country.find(session[:country_id]).name
end
在我写这篇文章时,会记录更多类似的pg表达式,总是包含"国家"表,并指向与上述相同的方法。
我的问题在哪里,我该如何解决?谢谢!
答案 0 :(得分:1)
事实上,我的应用程序需要一些最初播种的数据,因为控制器会将其拉入下拉选择器。在本地这是由
完成的rake db:seed
在Heroku上,它只是由
完成heroku run --app APP rake db:seed
写成here使用与本地相同的seeds.rb。