将rails_admin与MongoDB一起使用

时间:2013-05-30 17:51:37

标签: mongodb mongoid rails-admin

我从未使用过MongoDB,并且正在使用其他人的代码,尝试使用rails_admin gem。当我运行rails g rails_admin:install时,我得到以下日志:

  -  Hello, RailsAdmin installer will help you set things up!
       -  I need to work with Devise, let's look at a few things first:
       -  Checking for a current installation of devise...
       -  Found it!
       -  Looks like you've already installed it, good!
       ?  Where do you want to mount rails_admin? Press <enter> for [admin] > 
    gsub  config/routes.rb
   route  mount RailsAdmin::Engine => '/admin', :as => 'rails_admin'
       -  And you already set it up, good! We just need to know about your user model name...
       -  We found 'user' (should be one of 'user', 'admin', etc.)
       ?  Correct Devise model name if needed. Press <enter> for [user] > admin
       -  Now setting up devise with user model name 'admin':
generate  devise
/Users/sararobinson/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
  invoke  mongoid
  create    app/models/admin.rb
  invoke    test_unit
  create      test/unit/admin_test.rb
  create      test/fixtures/admins.yml
  insert    app/models/admin.rb
  insert    app/models/admin.rb
   route  devise_for :admins
       -  Now you'll need an initializer...
  create  config/initializers/rails_admin.rb
[RailsAdmin] Could not load model App::Models::Mongoid::GridFs, assuming model is non existing. (uninitialized constant App)
[RailsAdmin] Could not load model App::Models::Mongoid::GridFs::Fs::Chunk, assuming model is non existing. (uninitialized constant App)
[RailsAdmin] Could not load model App::Models::Mongoid::GridFs::Fs::File, assuming model is non existing. (uninitialized constant App)
[RailsAdmin] Could not load model Mongoid-gridFs, assuming model is non existing. (wrong constant name Mongoid-gridFs)
       -  Adding a migration...
       -  uninitialized constant RailsAdmin::Generators::Utils::ClassMethods::ActiveRecord
       -  Job's done: migrate, start your server and visit '/admin'!

然后当我尝试从控制台添加管理员时,我收到此错误:

NameError: uninitialized constant Admin

如果我应该包含任何其他文件,请告诉我。我对mongo和rails_admin完全陌生,所以对任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

错误似乎在这里:

[RailsAdmin] Could not load model App::Models::Mongoid::GridFs, assuming model is non existing. (uninitialized constant App)

请参阅以下问题:https://github.com/sferik/rails_admin/issues/1808

要修复它,请使用Github的最新主宝石。您可以将Gemfile中的gem 'rails_admin'替换为:

gem 'rails_admin', :git => "https://github.com/sferik/rails_admin.git"

一旦修复程序发布到gem,你就可以移动到官方gem,但是现在你需要将它与Mongoid一起使用。