简体   繁体   English

rails g给出未初始化的常量Rack :: Mongoid

[英]rails g gives uninitialized constant Rack::Mongoid

I get this error when I run 'rails g' (my app seems to run fine otherwise though, but I need to use a generator): 我在运行“ rails g”时收到此错误(尽管我的应用似乎运行正常,但是我需要使用一个生成器):

      /home/love/mongodb.roger/.bundler/ruby/1.8/gems/activesupport-3.0.9/lib/active_support/inflector/methods.rb:113:in `constantize': uninitialized constant Rack::Mongoid (NameError)
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/activesupport-3.0.9/lib/active_support/inflector/methods.rb:112:in `each'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/activesupport-3.0.9/lib/active_support/inflector/methods.rb:112:in `constantize'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:14:in `klass'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:33:in `build'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:79:in `build'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application.rb:209:in `inject'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:79:in `each'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:79:in `inject'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/actionpack-3.0.9/lib/action_dispatch/middleware/stack.rb:79:in `build'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application.rb:162:in `build_middleware_stack'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application/finisher.rb:35
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `instance_exec'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `run'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:50:in `run_initializers'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `each'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `run_initializers'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application.rb:134:in `initialize!'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application.rb:77:in `send'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application.rb:77:in `method_missing'
           from /home/love/mongodb.roger/config/environment.rb:7
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/application.rb:103:in `require_environment!'
           from /home/love/mongodb.roger/.bundler/ruby/1.8/gems/railties-3.0.9/lib/rails/commands.rb:16
           from script/rails:6:in `require'
           from script/rails:6

I use 1.8.7 (but I also get this error when I use 1.9.x with RVM). 我使用1.8.7(但是当我将1.9.x与RVM一起使用时,也会出现此错误)。

ruby -v 
ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux] 

rails -v 
Rails 3.0.9 

cat Gemfile 
source 'http://rubygems.org' 
gem 'rails', '3.0.9' 
gem "mongoid", "~> 2.1.0" 
gem "bson_ext", "~> 1.3" 
gem "devise" #, :git=>"https://github.com/plataformatec/devise.git" 
gem "rails-footnotes", ">= 3.7", :group => :development 
gem "compass" 
gem 'SystemTimer' 
gem "oa-oauth", :require => "omniauth/oauth" 
gem "warden" 
gem 'formtastic', '~> 1.1.0' 
gem 'paperclip' 
gem 'jquery-rails' 
gem 'acts-as-taggable-on' 
gem "gmaps4rails" 
gem 'browser' 
gem 'apotomo', "~>1.1.0" 
gem 'sass' 
gem 'chunky_png' 
gem 'mongoid-paperclip' 

Does anyone have any idea ? 有人有什么主意吗 ?

从您的config/application.rb文件中删除该行:

require "mongoid/railtie"

I have seen this issue on migrating from Rails 3.0.7 to Rails 3.1.3 when using Mongoid. 我在使用Mongoid时从Rails 3.0.7迁移到Rails 3.1.3时已经看到了这个问题。 To fix the problem find you where are doing all your mongoid requires - for example - in config/application.rb 要解决该问题,请在哪里查找所有蒙古币,例如在config / application.rb中

require 'mongoid/railtie'
require 'action_controller/railtie'
require 'action_mailer/railtie'
require 'active_resource/railtie'
require 'rails/test_unit/railtie'

... then add require 'rack/mongoid' just before this to give you... ...然后在此之前添加require'rack / mongoid'给您...

require 'rack/mongoid' # TADA!
require 'mongoid/railtie'
require 'action_controller/railtie'
require 'action_mailer/railtie'
require 'active_resource/railtie'
require 'rails/test_unit/railtie'

This got the Rails console working for me as well (rails c) 这也使Rails控制台也为我工作(rails c)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 “require'capybara / rails'”给出了“未初始化的常量Rack :: Builder” - “require 'capybara/rails'” gives “uninitialized constant Rack::Builder” Rails 6,Heroku:NameError:未初始化的常量机架::Cors - Rails 6, Heroku: NameError: uninitialized constant Rack::Cors 尝试在Rails 3中为Rack应用程序添加路由时获取未初始化的常量 - Getting Uninitialized Constant when trying to add a route for Rack application in Rails 3 Mongoid未初始化常数点 - mongoid uninitialized constant Point 未初始化的常数Mongoid :: Paperclip - uninitialized constant Mongoid::Paperclip Ruby&Mongoid-未初始化的常量 - Ruby & Mongoid - Uninitialized constant Heroku未初始化的常量Rails:Initializer(NameError)(noWWW机架中间件) - Heroku uninitialized constant Rails:Initializer (NameError) (noWWW Rack Middleware) 在Rails 3上安装和运行Capybara(未初始化的常量Object :: Rack(NameError)) - Installing and running Capybara on Rails 3 (uninitialized constant Object::Rack (NameError)) 未初始化的常量Cucumber :: Rails :: Database(NameError)黄瓜+蒙古包 - uninitialized constant Cucumber::Rails::Database (NameError) cucumber + mongoid ruby on rails + heroku + mongoid + devise = uninitialized constant User(NameError) - ruby on rails + heroku + mongoid + devise = uninitialized constant User (NameError)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM