【问题标题】:Heroku ruby-on-rails deployment "undefined method `info' for nil:NilClass"Heroku ruby​​-on-rails 部署“nil:NilClass 的未定义方法‘信息’”
【发布时间】:2013-01-13 14:10:12
【问题描述】:

按照教程,我成功地在本地制作了一个简单的 RoR 应用程序(使用 SQLite 和一些非常简单的数据模型),并通过 git 与 heroku 同步工作。 (Heroku 服务器启动并显示通常的欢迎页面。)

但是,如果我想访问我的课程网址之一,例如 /users,我会收到以下消息:

内部服务器错误

nil:NilClass 的未定义方法 `info'

heroku logs透露

ERROR NoMethodError: undefined method `info' for nil:NilClass
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.7/lib/action_dispatch/middleware/request_id.rb:22:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.3/lib/rack/runtime.rb:17:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.7/lib/rails/rack/logger.rb:25:in `call_app'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.7/lib/rails/rack/logger.rb:16:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.7/lib/rails/applicatio
n.rb:220:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.7/lib/rails/rack/log_tailer.rb:17:in `call'
/usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.3/lib/rack/methodoverride.rb:21:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.3/lib/rack/lock.rb:15:in `call'
/usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.7/lib/action_dispatch/middleware/static.rb:62:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.3/lib/rack/content_length.rb:14:in `call'
/app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.3/lib/rack/handler/webrick.rb:59:in `service'
/usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.7/lib/rails/engine.rb:479:in `call'
heroku[router]: at=info method=GET path=/users host=xxx.herokuapp.com fwd=178.190.207.99 dyno=web.1 queue=0 wait=0ms connect=0ms service=12ms status=500 bytes=340

似乎与请求at=info中的部分有关。到目前为止,我的研究似乎表明与ActiveRecord:Base.logger 有联系,但我不明白。

我什至从哪里开始寻找原因?

在其他帖子中,Gemfile 也是相关的,所以这里是:

source 'https://rubygems.org'

gem 'rails', '3.2.7'

group :development do
    gem 'sqlite3', '1.3.7'
end

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

【问题讨论】:

  • 您运行了 db:migrate、bundle install 等?

标签: ruby-on-rails deployment heroku rails-activerecord


【解决方案1】:

运行以下命令(如果您还没有):

heroku run rake db:migrate

你的用户控制器是什么样的?

rake routes 的输出是什么?

【讨论】:

    【解决方案2】:

    添加这个:

    config.active_record.logger=Logger.new(STDOUT)
    

    配置/环境/xxx.rb。 xxx 是您正在使用的环境的名称,应该是开发、生产或测试。

    【讨论】:

      猜你喜欢
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      相关资源
      最近更新 更多