Rails App在开发中运行良好,但在Heroku postgres上会造成麻烦

时间:2016-05-15 21:30:27

标签: ruby-on-rails ruby postgresql heroku

我有一个完美的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表达式,总是包含"国家"表,并指向与上述相同的方法。

我的问题在哪里,我该如何解决?谢谢!

1 个答案:

答案 0 :(得分:1)

事实上,我的应用程序需要一些最初播种的数据,因为控制器会将其拉入下拉选择器。在本地这是由

完成的
rake db:seed

在Heroku上,它只是由

完成
heroku run --app APP rake db:seed

写成here使用与本地相同的seeds.rb。