gpt4 book ai didi

ruby-on-rails-3 - Rails 3.0.7 和 Mongodb 集成

转载 作者:可可西里 更新时间:2023-11-01 10:01:33 24 4
gpt4 key购买 nike

我想使用 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

我已经为用户创建了 Controller :

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)

我安装的 gem:

 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'] %>

但我收到错误:没有这样的文件或目录 -/home/adm/NetBeansProjects/MongoDBApp/config/database.yml

所以我将 mongo.yml 文件的内容复制到 database.yml 并且出现错误:

ActiveRecord::AdapterNotSpecified
数据库配置没有指定适配器

最佳答案

MongoMapper 是 ActiveRecord 的完全替代品——它不仅仅是一个适配器。

运行 rails g mongo_mapper:config 将为 MongoMapper 创建一个 mongo.yml 配置文件,您将不需要 mongodb.rb 初始值设定项。此外,您必须从 database.yml 中删除 adapter: mongodb,否则 ActiveRecord 将继续寻找不存在的 mongodb 适配器。

关于ruby-on-rails-3 - Rails 3.0.7 和 Mongodb 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6325397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com