0

Railsの1つのアプリケーションで複数のデータベースに接続できるようにすることを引き続き試みてください。この機能は特定の生産要件であり、私は完全な初心者です...

だから私は事前の推薦を受けました。アプリケーションにdatabase.ymlから「deals_qa」環境を読み取らせることができなかったことに注意してください。少なくともこれが表示された方法です。

現在、最終的な結果として、アプリケーションで生成された「おっと」ページに移動します。このページは、エラーを説明するために作成されたものと思われるため、これが機能しない理由については具体的なことは何もありません。

これを機能させるために私が見るべき提案やその他のことを確認して提供してください...ありがとう!

以前の推奨事項に基づくコードの変更は次のとおりです。

これは、「dealsdb」という名前の新しいモデルファイルです。

module Dealsdb

@abstract_class = true

conn = { :adapter => 'mysql',
 :encoding => 'utf8',
 :reconnect => 'true',
 :database => 'deals_qa',
 :username => 'xxxxxx',
 :password => 'xxxxxx',
 :host => 'xx.xx.xx.xx',
 :port => 'xxxx'
}

establish_connection(conn["deals_qa"])

end
end

class Members < Dealsdb::Base

  def email_exists?(email)
    unless email.blank? || SYSTEM_EMAILS.include?(email)
    returning find_by_email(email) do |user|
    end
    end
  end
end

これは、既存のアカウントコントローラーファイル、ファイル名Account_Controller.rbの対応するコードスニペットです。私は最初の条件を乗り越えようとしているだけであることに注意してください。

if Dealsdb::Members.email_exists?(@email)
            @Redirect_Flag = true
        else
            flash.now[:error] = 'Didnt MMS database check didnt work'
        end

ありがとう!

4

2 に答える 2

0

Railsの複数のデータベースへの接続について話す前の質問があります

複数のデータベースを備えたRailsRSpec

私はRspecを参照していますが、パターンは一般的に機能し、何度も使用して成功しています。

于 2012-10-07T13:30:47.823 に答える
0

から継承するものはありませんActiveRecord::BaseActiveRecord::Baseこれを行う方法は、モデルに(レールの標準)を継承させることです。次に、モデル内で。との接続を変更しestablish_connection(db_name)ます。

例:

class Members < ActiveRecord::Base
  establish_connection(:foo)

  def email_exists?(email)
    unless email.blank? || SYSTEM_EMAILS.include?(email)
    returning find_by_email(email) do |user|
    end
    end
  end
end

database.yml内:

foo:
  adapter: mysql
  host: localhost
  database: deals_qa
  username: xxxxxx
  password: xxxxxx

私が見つけた参照リンクは次のとおりです:https ://groups.google.com/forum/?fromgroups =#!topic / ruby​​onrails-talk / OpHh6FdNELo

于 2012-10-07T08:38:18.117 に答える