0

私たちのアプリでは、MySQLデータベースとMongoデータベースなどのさまざまなデータソースからデータを取得する必要があります。

さまざまなデータソースからデータをプルし、Rails.cacheを活用してクエリを高速化するようにモデルを構成することは可能ですか?現在、Railsの構成ファイルは単一のデータソースのみをサポートしているようです。

Rails3.0.6を使用しています。

4

2 に答える 2

2

Rails では、複数のデータベースを使用するための規則が用意されています。Mango と Mysql の使用方法を紹介しましょう。

mysql をプライマリ データベースと見なします。そのため、mysql の構成は config/database.yml 内に入ります。

config/database.yml
  development:
    #dev config goes here
  test:
    #test config goes here
  production:
    #production config goes here

そして、Mongo について考えてみましょう。config/mongo_database.yml に Mongo の別の構成を配置します。

 config/mongo_database.yml
    development:
      #dev config goes here
    test:
      #test config goes here
    production:
      #production config goes here

次に、User モデルを mysql に接続します。

   class User < ActiveRecord::Base
     #Active record by default connects with the primary database configuration
   end

ここで、Product モデルを Mongo に接続します。

   class Product
     include MongoMapper::Document
   end

また、config/intializers/mongo.rb で mongo 設定を初期化する必要があります。

config/intializers/mongo.rb 
Mongoid.configure do |config|
  config = YAML.load_file(Rails.root.join("config", "mongo_database.yml"))[Rails.env]
  host = config["host"]
  config.master = Mongo::Connection.new.db(config["database"])
end
于 2013-02-26T22:23:45.783 に答える
0

はい。

MySQL の場合:

class Example < ActiveRecord::Base
  ...
end

モンゴの場合:

class ExampleTwo
  include MongoMapper::Document
  ...
end
于 2013-02-26T22:01:41.183 に答える