【问题标题】:Heroku routes not workingHeroku 路线不起作用
【发布时间】:2012-08-29 22:28:53
【问题描述】:

所以我的主要 Rails 模型是“公司”。当我在本地托管我的应用程序并导航到 localhost:3000/companies 时,一切正常。但是当我导航到我的应用程序的 heroku 版本时:

http://calm-journey-2877.herokuapp.com/companies

.. 我收到错误“我们很抱歉,但出了点问题”

这表明该页面存在但正在产生某种错误。知道会发生什么吗?这是我通过阅读 Rails 教程书构建的一个非常基本的应用程序。

谢谢!!

编辑:

这是 Heroku 日志。

2012-08-29T22:20:54+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/connection.rb:38:in `receive_data'
2012-08-29T22:20:54+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/backends/base.rb:63:in `start'
2012-08-29T22:20:54+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run'
2012-08-29T22:20:54+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/server.rb:159:in `start'
2012-08-29T22:20:54+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run_machine'
2012-08-29T22:20:54+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/runner.rb:185:in `run_command'
2012-08-29T22:20:54+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/controllers/controller.rb:86:in `start'
2012-08-29T22:20:54+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/lib/thin/runner.rb:151:in `run!'
2012-08-29T22:20:54+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/bin/thin:19:in `load'
2012-08-29T22:20:54+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/bin/thin:19:in `<main>'
2012-08-29T22:20:54+00:00 app[web.1]: 
2012-08-29T22:20:54+00:00 app[web.1]:   vendor/bundle/ruby/1.9.1/gems/thin-1.4.1/bin/thin:6:in `<top (required)>'
2012-08-29T22:20:54+00:00 app[web.1]: 
2012-08-29T22:20:54+00:00 heroku[router]: GET calm-journey-2877.herokuapp.com/clients dyno=web.1 queue=0 wait=0ms service=7ms status=404 bytes=728
2012-08-29T22:21:00+00:00 app[web.1]: 
2012-08-29T22:21:00+00:00 app[web.1]: 
2012-08-29T22:21:00+00:00 app[web.1]: Started GET "/companies" for 24.14.103.65 at 2012-08-29 22:21:00 +0000
2012-08-29T22:21:00+00:00 app[web.1]: Processing by CompaniesController#index as HTML
2012-08-29T22:21:00+00:00 app[web.1]: Completed 500 Internal Server Error in 7ms
2012-08-29T22:21:00+00:00 app[web.1]: 
2012-08-29T22:21:00+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR:  relation "companies" does not exist
2012-08-29T22:21:00+00:00 app[web.1]: LINE 4:              WHERE a.attrelid = '"companies"'::regclass
2012-08-29T22:21:00+00:00 app[web.1]:                                         ^
2012-08-29T22:21:00+00:00 app[web.1]: :             SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
2012-08-29T22:21:00+00:00 app[web.1]:               FROM pg_attribute a LEFT JOIN pg_attrdef d
2012-08-29T22:21:00+00:00 app[web.1]:                 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
2012-08-29T22:21:00+00:00 app[web.1]:              WHERE a.attrelid = '"companies"'::regclass
2012-08-29T22:21:00+00:00 app[web.1]:                AND a.attnum > 0 AND NOT a.attisdropped
2012-08-29T22:21:00+00:00 app[web.1]:              ORDER BY a.attnum
2012-08-29T22:21:00+00:00 app[web.1]: ):
2012-08-29T22:21:00+00:00 app[web.1]:   app/controllers/companies_controller.rb:86:in `sort_column'
2012-08-29T22:21:00+00:00 app[web.1]:   app/controllers/companies_controller.rb:6:in `index'
2012-08-29T22:21:00+00:00 app[web.1]: 
2012-08-29T22:21:00+00:00 app[web.1]: 
2012-08-29T22:21:00+00:00 heroku[router]: GET calm-journey-2877.herokuapp.com/companies dyno=web.1 queue=0 wait=0ms service=13ms status=500 bytes=643
2012-08-29T22:21:00+00:00 heroku[router]: GET calm-journey-2877.herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=3ms status=304 bytes=0
2012-08-29T22:27:31+00:00 app[web.1]: 
2012-08-29T22:27:31+00:00 app[web.1]: 
2012-08-29T22:27:31+00:00 app[web.1]: Started GET "/companies" for 24.14.103.65 at 2012-08-29 22:27:31 +0000
2012-08-29T22:27:31+00:00 app[web.1]: Processing by CompaniesController#index as HTML
2012-08-29T22:27:31+00:00 app[web.1]: Completed 500 Internal Server Error in 14ms
2012-08-29T22:27:31+00:00 app[web.1]: 
2012-08-29T22:27:31+00:00 app[web.1]: LINE 4:              WHERE a.attrelid = '"companies"'::regclass
2012-08-29T22:27:31+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR:  relation "companies" does not exist
2012-08-29T22:27:31+00:00 app[web.1]:                                         ^
2012-08-29T22:27:31+00:00 app[web.1]: :             SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
2012-08-29T22:27:31+00:00 app[web.1]:               FROM pg_attribute a LEFT JOIN pg_attrdef d
2012-08-29T22:27:31+00:00 app[web.1]:              WHERE a.attrelid = '"companies"'::regclass
2012-08-29T22:27:31+00:00 app[web.1]:                 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
2012-08-29T22:27:31+00:00 app[web.1]:                AND a.attnum > 0 AND NOT a.attisdropped
2012-08-29T22:27:31+00:00 app[web.1]:              ORDER BY a.attnum
2012-08-29T22:27:31+00:00 app[web.1]: ):
2012-08-29T22:27:31+00:00 app[web.1]:   app/controllers/companies_controller.rb:86:in `sort_column'
2012-08-29T22:27:31+00:00 app[web.1]:   app/controllers/companies_controller.rb:6:in `index'
2012-08-29T22:27:31+00:00 app[web.1]: 
2012-08-29T22:27:31+00:00 app[web.1]: 
2012-08-29T22:27:31+00:00 heroku[router]: GET calm-journey-2877.herokuapp.com/companies dyno=web.1 queue=0 wait=0ms service=42ms status=500 bytes=643
2012-08-29T22:27:31+00:00 heroku[router]: GET calm-journey-2877.herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=3ms status=304 bytes=0
2012-08-29T22:29:13+00:00 app[web.1]: 
2012-08-29T22:29:13+00:00 app[web.1]: 
2012-08-29T22:29:13+00:00 app[web.1]: Started GET "/companies" for 24.14.103.65 at 2012-08-29 22:29:13 +0000
2012-08-29T22:29:13+00:00 app[web.1]: Processing by CompaniesController#index as HTML
2012-08-29T22:29:13+00:00 app[web.1]: Completed 500 Internal Server Error in 3ms
2012-08-29T22:29:13+00:00 app[web.1]: 
2012-08-29T22:29:13+00:00 app[web.1]: LINE 4:              WHERE a.attrelid = '"companies"'::regclass
2012-08-29T22:29:13+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR:  relation "companies" does not exist
2012-08-29T22:29:13+00:00 app[web.1]: :             SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
2012-08-29T22:29:13+00:00 app[web.1]:                                         ^
2012-08-29T22:29:13+00:00 app[web.1]:              WHERE a.attrelid = '"companies"'::regclass
2012-08-29T22:29:13+00:00 app[web.1]:               FROM pg_attribute a LEFT JOIN pg_attrdef d
2012-08-29T22:29:13+00:00 app[web.1]:                 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
2012-08-29T22:29:13+00:00 app[web.1]:                AND a.attnum > 0 AND NOT a.attisdropped
2012-08-29T22:29:13+00:00 app[web.1]:              ORDER BY a.attnum
2012-08-29T22:29:13+00:00 app[web.1]: ):
2012-08-29T22:29:13+00:00 app[web.1]:   app/controllers/companies_controller.rb:6:in `index'
2012-08-29T22:29:13+00:00 app[web.1]:   app/controllers/companies_controller.rb:86:in `sort_column'
2012-08-29T22:29:13+00:00 app[web.1]: 
2012-08-29T22:29:13+00:00 app[web.1]: 
2012-08-29T22:29:13+00:00 heroku[router]: GET calm-journey-2877.herokuapp.com/companies dyno=web.1 queue=0 wait=0ms service=10ms status=500 bytes=643
2012-08-29T22:33:52+00:00 app[web.1]: 
2012-08-29T22:33:52+00:00 app[web.1]: 
2012-08-29T22:33:52+00:00 app[web.1]: Started GET "/companies" for 186.147.240.150 at 2012-08-29 22:33:52 +0000
2012-08-29T22:33:52+00:00 app[web.1]: Processing by CompaniesController#index as HTML
2012-08-29T22:33:52+00:00 app[web.1]: Completed 500 Internal Server Error in 3ms
2012-08-29T22:33:52+00:00 app[web.1]: 
2012-08-29T22:33:52+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR:  relation "companies" does not exist
2012-08-29T22:33:52+00:00 app[web.1]: LINE 4:              WHERE a.attrelid = '"companies"'::regclass
2012-08-29T22:33:52+00:00 app[web.1]:                                         ^
2012-08-29T22:33:52+00:00 app[web.1]:               FROM pg_attribute a LEFT JOIN pg_attrdef d
2012-08-29T22:33:52+00:00 app[web.1]: :             SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
2012-08-29T22:33:52+00:00 app[web.1]:                 ON a.attrelid = d.adrelid AND a.attnum = d.adnum
2012-08-29T22:33:52+00:00 app[web.1]:              WHERE a.attrelid = '"companies"'::regclass
2012-08-29T22:33:52+00:00 app[web.1]: 
2012-08-29T22:33:52+00:00 app[web.1]:              ORDER BY a.attnum
2012-08-29T22:33:52+00:00 app[web.1]:   app/controllers/companies_controller.rb:86:in `sort_column'
2012-08-29T22:33:52+00:00 app[web.1]:                AND a.attnum > 0 AND NOT a.attisdropped
2012-08-29T22:33:52+00:00 app[web.1]: ):
2012-08-29T22:33:52+00:00 app[web.1]:   app/controllers/companies_controller.rb:6:in `index'
2012-08-29T22:33:52+00:00 app[web.1]: 
2012-08-29T22:33:52+00:00 heroku[router]: GET calm-journey-2877.herokuapp.com/companies dyno=web.1 queue=0 wait=0ms service=10ms status=500 bytes=643
2012-08-29T22:33:52+00:00 heroku[router]: GET calm-journey-2877.herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=4ms status=200 bytes=0

【问题讨论】:

  • 查看 Heroku 上的错误日志,看看出了什么问题,即heroku logs。这可能会为您指明正确的方向。它可能与路由无关,例如您可能忘记了构建和迁移数据库。

标签: ruby-on-rails heroku routes


【解决方案1】:

您是否在 Heroku heroku run rake db:migrate 中迁移了数据库?

【讨论】:

  • 谢谢!这似乎有点帮助。但是,它并没有迁移所有内容.. 无论如何迁移我的所有六个迁移?抱歉,如果这是一个愚蠢的问题,我对 Rails 真的很陌生。
  • 你怎么知道它没有运行你所有的迁移?
  • 好的,我想我知道发生了什么。我使用 rake 任务直接从 CSV 文件将数据导入数据库。由于此任务将数据直接导入数据库,因此未创建迁移文件。我只需要以某种方式从 rake 任务中创建一个迁移文件。
  • 你可以运行heroku run rake 'the_task_that_uses_the_csv_file'
【解决方案2】:

您的解决方案在 git 中。编写您的 rake 任务并确保它在您的 git 存储库中。

不如试试 Heroku 运行 rake your_task

将您的数据库种子文件用于其预期目的。

【讨论】:

    猜你喜欢
    • 2017-10-02
    • 2013-05-03
    • 2014-09-08
    • 2015-04-09
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多