2

database.yml別のデータベースを示すラベルとして「logging_development」を含めるように構成しました。モデルの 1 つは、この「ラベル」を使用してデータベースに接続するために「確立_接続」を使用しています。

私のモデルは次のようになります。

class AdHistory < ActiveRecord::Base

Establish_connection "logging_#{RAILS_ENV}"

Rails サーバーは、起動時に問題なく動作し、関係するデータベースとのモデルの接続を確立します。しかし、Ruby コンソールを起動してモデルを使用しようとすると、「開発」ラベルを使用しdatabase.ymlて接続が確立されます。問題を調査しましたが、解決策が見つかりません。database.ymlファイルのサンプルを次に示します。

development:
  adapter: mysql
  encoding: utf8
  reconnect: true
  database: ad_production
  pool: 5
  username: root
  password: ********
  socket: /tmp/mysql.sock

logging_development:
  adapter: mysql
  encoding: utf8
  reconnect: true
  database: ad_logging
  pool: 5
  username: root
  password: ********
  socket: /tmp/mysql.sock

Ruby 1.8.7 と Rails 2.3.8 を使用しています

4

2 に答える 2

1

Rails コンソールの実行時に RAILS_ENV=logging_development を使用しましたか? デフォルトのRails環境はdevelopment. したがって、これを使用してコンソールをロードして、RAILS_ENV 変数を設定してみてください。

RAILS_ENV=logging_development scripts/rails console

于 2013-04-02T19:47:42.517 に答える