2012-04-10 7 views
2

Railsが本番環境で使用する私のデータベースアダプタはPostgreSQLですが、私は別のサーバでMySQLデータベースをクエリする必要があります。私は私のGemfileに 'mysql2' gemを含め、バンドルのインストールはうまくいきました。Rails 3でpostgresqlとmysqlの両方を使用していますか?

私のアプリケーションコントローラでは、私はclient = Mysql2::Client.new(...)を持っていますが、私はApplicationController :: Mysql2定数を初期化していません。

なぜ、mysql2の宝石をロードしていないのですか?私はrequire 'mysql2'をアプリケーションコントローラに入れてみましたが、ファイルが見つかりません。

注私はルビー1.9.3p125を使用し、セカンダリデータベースにあるデータを表現するモデルに3.2.1

答えて

0

コールestablish_connectionレールです。 Railsはそれを理解しなければならない。

Data.establish_connection adapter: 'mysql' # ... 

渡さなければならないハッシュは、データベース構成ファイル内のものと同様です。マニュアルの例を参照してください。

+1

私はこのデータのモデルを作成する必要はありません、私は簡単に情報のデータベースを照会する必要があります。私はアクティブレコードをまったく必要としないでください。別のデータベースとの接続を確立する方法はありませんか? – Brian

+0

@Brian、私はあなたが直接アダプタを使うことができると思いますが、あなたはすでにそれを試しています。私は何があなたのアプローチに間違っているのか分かりません、そして、残念ながら私は今すぐテストすることはできません。 –

+0

@Brian、 'gemfile'に' gem 'mysql2''を追加しましたか? Bundlerはあなたがインストールしたものに関係なく、そこに指定した宝石だけを_only_ロードします。 –

0

これは古い質問です。レールのアプリの中から...

client = Mysql2::Client.new(...) 

、および接続が(最初のコンソールでそれを試してみてください)が正常に行うことができます。しかし、それだけですることが可能であると仮定。お使いのコントローラのトップ..in

require 'yourlib' 

を:その後、私はあなたのRailsアプリの/ libのディレクトリにクラスにmysqlの接続を入れ、その後、でしょう。次に、コントローラでクラスとメソッドを使用できます。

作成したlibファイルと、libファイルを使用するために作成したコードも、rails consoleでもテストできます。