Rails 3.0.7和Mongodb集成

如何解决Rails 3.0.7和Mongodb集成

| 我想使用mongodb在Rails中创建我的第一个Web应用程序,但是在正确集成方面遇到了一些麻烦。首先,这是我的database.yml文件
development:
  adapter: mongodb
  database: mongo_development
  host: localhost

test:
  adapter: mongodb
  database: mongo_test
  host: localhost

production:
  adapter: mongodb
  database: mongo_production
  host: localhost
在几个教程之一中,我看到了一个等效的ActiveRecord模型-MongoMapper。例如我的用户模型:
class User
  include MongoMapper::Document

  key :name,String
  key :age,Integer

  many :books
end
我还将mongodb.rb添加到config / initializers中:
db_config = YAML::load(File.read(RAILS_ROOT + \"/config/database.yml\"))

if db_config[Rails.env] &&
  db_config[Rails.env][\'adapter\'] == \'mongodb\'
  mongo = db_config[Rails.env]
  MongoMapper.connection = Mongo::Connection.new(mongo[\'hostname\'])
  MongoMapper.database = mongo[\'database\']
end
我已经为用户创建了控制器:
class UsersController < ApplicationController

  def index
    user = User.new(:name => \'Brandon\')
    user.books.build(:name => \'Programming\',:started => 10.years.ago)
    user.save!
    puts User.where(:name => \'Brandon\').first    
  end
end
但是我仍然遇到错误
Please install the mongodb adapter: `gem install activerecord-mongodb-adapter` (no such file to load -- active_record/connection_adapters/mongodb_adapter)
我安装的宝石:
 abstract (1.0.0)
 actionmailer (3.0.7)
 actionpack (3.0.7)
 activemodel (3.0.7)
 activerecord (3.0.7)  
 activeresource (3.0.7)
 activesupport (3.0.8,3.0.7)
 ....
 mongo (1.3.1)
 mongo_mapper (0.9.1)
 rails (3.0.7)
 railties (3.0.7)
 rake (0.9.2)
 rubygems-update (1.8.5)
有人可以帮忙吗? 更新 我删除了mongodb.rb初始值设定项database.yml并使用
rails g mongo_mapper:config
,它创建了文件mongo.yml:
defaults: &defaults
   host: 127.0.0.1
   port: 27017

development:
   <<: *defaults
   database: mongo_db_app_development

test:
   <<: *defaults
   database: mongo_db_app_tests

# set these environment variables on your prod server
production:
   <<: *defaults
   database: mongo_db_app
   username: <%= ENV[\'MONGO_USERNAME\'] %>
   password: <%= ENV[\'MONGO_PASSWORD\'] %>
但我得到了错误
No such file or directory - /home/adm/NetBeansprojects/MongoDBApp/config/database.yml
所以我将mongo.yml文件内容复制到了database.yml中,但出现错误
ActiveRecord::AdapterNotSpecified 
database configuration does not specify adapter
    

解决方法

        MongoMapper完全替代了ActiveRecord-它不仅仅是一个适配器。 运行
rails g mongo_mapper:config
,这将为MongoMapper创建一个mongo.yml配置文件,您将不需要mongodb.rb初始化程序。另外,您还必须从database.yml中删除“ 11”,否则ActiveRecord将继续寻找不存在的mongodb适配器。     ,        在将mongodb集成到此问题中的另一个数据库之上之前,我回答了一个不同的问题: 如何在同一个Ruby Rails项目中配置MongoMapper和ActiveRecord 您可以遵循该步骤,而忽略适用于ActiveRecord的部分。     ,        我最近写了一篇文章在mongodb.Rails 3.0和mongoDB上构建Rails 3.0项目 希望这是有用的。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?