これを行う方法についてのドキュメントを読みましたが、実際には問題があります。私のアプリには、以下のdatabase.ymlファイルで説明されている2つの異なるデータベースがあります。
sqlite_test:
adapter: sqlite3
database: db/sqlite_test.sqlite3
table: plots
pool: 5
timeout: 5000
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: test
pool: 5
username: myname
password: mypassword
host: localhost
私のアプリケーションは、データベースの内容やその構造についての知識がなくても、(基本的な)データベースにデータをプロットする動的プロッターです。これらのデータベースには両方とも異なるデータが含まれています。別のRailsアプリで作成したSQLiteデータベース。
私が使用している現在のアプリは、外部で構築したMYSQLデータベースを中心に構築されています。SQLiteデータベースを/dbディレクトリにコピーしました。だから私のメインモデルでは、私が言うとき:
class Plot < ActiveRecord::Base
establish_connection :development
set_table_name "stock_test"
set_primary_key :id
すべてがうまく機能し、ダンディです。ただし、次のように変更すると、次のようになります。
establish_connection :sqlite_test
set_table_name "plots"
Railsコンソールを介してそのデータベースにアクセスしようとすると、次のようなエラーが発生します。
>>ActiveRecord::AdapterNotSpecified: database configuration does not specify adapter
database.ymlファイルは明らかにアダプターを指定しているので、それがなぜなのかわかりません。ただし、モデルで手動で行うと、すべてが正常に機能します。
class Plot < ActiveRecord::Base
establish_connection(:adapter => "sqlite3", :database => "db/sqlite_test.sqlite3", :pool => 5 )
database.ymlでwhatsを手動で指定したときにすべてが機能するのに、database.yml参照を使用しただけでは機能しないのはなぜですか?
ありがとう!