XPac27
XPac27

Reputation: 301

ruby on rails + heroku + mongoid + devise = uninitialized constant User (NameError)

I'm getting an error when deploying my app to Heroku. After looking 3 days looking for a solution, it seams like a common error, but I did not find a solution yet. My application is running perfectly fine on my computer which is running :

My Heroky app is on a cedar stack with addons: MongoHQ MongoHQ Free, Shared Database 5MB.

The error I get when I push my app on Heroky is:

lib/active_support/inflector/methods.rb:229:in `block in constantize': uninitialized constant User (NameError)

More information: I'm using mongoid with mongohq and devise. I believe this comes from devise because I use it on my User model. Note that my app/models/User.rb file is commited and that there is no typo between User and Users in my application. I'm not requiring "active_record/railtie" in my config/application.rb file because I'm using mongoid. Thus my User model is not extending ActiveRecord::Base, but this must be perfectly fine.

I really hope someone could help me because I'm stuck on this issue for too long and I'm completely new to Heroku :) Thank you very much in advance !

Here is my app's Gemfile:

source "http://rubygems.org"

gem "rails", "3.2.3"

gem "bundler"

gem "rake", "0.9.2.2"

group :production do
  gem "thin", "~> 1.3"
end

# DATABASE
gem "mongo",    "~> 1.6"
gem "bson_ext", "~> 1.6"
gem "mongoid",  "~> 2.4"
gem "mongoid_token", "~> 1.0"

# FORMS
gem "dynamic_form", "~> 1.1"

# FILE UPLOAD
gem "mini_magick", "~> 3.4"
gem "carrierwave", "~> 0.6"
gem "carrierwave-mongoid", :require => "carrierwave/mongoid"

# ASSETS
# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem "sass-rails",   "~> 3.2"
  gem "coffee-rails", "~> 3.2"
  gem "uglifier",     "~> 1.2"
end

# JAVASCRIPT
gem "jquery-rails", "~> 2.0"

# PAGINATION
gem "kaminari", "~> 0.13"

# AUTHORISATION
gem "devise", "~> 2.1"
gem "cancan", "~> 1.6"

Here are the Heroku's logs:

2012-05-25T18:24:23+00:00 heroku[web.1]: State changed from created to starting
2012-05-25T18:24:25+00:00 heroku[web.1]: Starting process with command `bundle exec thin start -R config.ru -e production -p 33048`
2012-05-25T18:24:30+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
2012-05-25T18:24:30+00:00 app[web.1]: DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
2012-05-25T18:24:32+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/inflector/methods.rb:229:in `block in constantize': uninitialized constant User (NameError)
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/inflector/methods.rb:228:in `each'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/inflector/methods.rb:228:in `constantize'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/lib/devise.rb:252:in `get'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/lib/devise/mapping.rb:77:in `to'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/lib/devise/mapping.rb:72:in `modules'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/lib/devise/mapping.rb:89:in `routes'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/lib/devise/mapping.rb:66:in `initialize'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/lib/devise/mapping.rb:156:in `default_used_route'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/lib/devise.rb:286:in `new'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/lib/devise/rails/routes.rb:207:in `block in devise_for'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/lib/devise/rails/routes.rb:206:in `each'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/lib/devise.rb:286:in `add_mapping'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/lib/devise/rails/routes.rb:206:in `devise_for'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/config/routes.rb:3:in `block in <top (required)>'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/routing/route_set.rb:282:in `eval_block'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/routing/route_set.rb:282:in `instance_exec'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/config/routes.rb:1:in `<top (required)>'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.3/lib/action_dispatch/routing/route_set.rb:260:in `draw'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/application/routes_reloader.rb:40:in `block in load_paths'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/application/routes_reloader.rb:40:in `each'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/application/routes_reloader.rb:40:in `load_paths'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/application/routes_reloader.rb:16:in `reload!'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/devise-2.1.0/lib/devise/rails.rb:14:in `block in <class:Engine>'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/application.rb:108:in `reload_routes!'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/lazy_load_hooks.rb:34:in `call'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/lazy_load_hooks.rb:34:in `execute_hook'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/lazy_load_hooks.rb:42:in `each'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/lazy_load_hooks.rb:43:in `block in run_load_hooks'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/application/finisher.rb:52:in `block in <module:Finisher>'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/initializable.rb:30:in `instance_exec'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/initializable.rb:30:in `run'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/initializable.rb:55:in `block in run_initializers'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/initializable.rb:54:in `run_initializers'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/initializable.rb:54:in `each'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/railtie/configurable.rb:30:in `method_missing'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/application.rb:136:in `initialize!'
2012-05-25T18:24:32+00:00 app[web.1]:   from config.ru:3:in `require'
2012-05-25T18:24:32+00:00 app[web.1]:   from config.ru:3:in `block in <main>'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/config/environment.rb:5:in `<top (required)>'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval'
2012-05-25T18:24:32+00:00 app[web.1]:   from config.ru:1:in `new'
2012-05-25T18:24:32+00:00 app[web.1]:   from config.ru:1:in `<main>'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/lib/rack/adapter/loader.rb:36:in `eval'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/lib/thin/controllers/controller.rb:71:in `start'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/lib/thin/controllers/controller.rb:181:in `load_rackup_config'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/lib/rack/adapter/loader.rb:36:in `load'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/lib/thin/runner.rb:151:in `run!'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/bin/thin:6:in `<top (required)>'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/lib/thin/runner.rb:185:in `run_command'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/thin:19:in `load'
2012-05-25T18:24:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/thin:19:in `<main>'
2012-05-25T18:24:33+00:00 heroku[web.1]: Process exited with status 1
2012-05-25T18:24:33+00:00 heroku[web.1]: State changed from starting to crashed

Upvotes: 1

Views: 1800

Answers (1)

XPac27
XPac27

Reputation: 301

Solution: if your User model is in app/model/User.rb then rename this file to app/model/user.rb so that the file is lower case.

Upvotes: 3

Related Questions