0

Rails 애플리케이션에서 2 개의 데이터베이스에 연결하려고합니다.모델 또는 테이블에 액세스 할 때 establish_connection

나는 2 개의 다른 데이터베이스에 2 개의 테이블을위한 나의 RoR 앱에서 2 개의 모델을 만들었습니다.

ActiveRecord::Base.establish_connection() 

하지만 내가 달성하기 위해 노력하고있어 자동으로 올바른 데이터베이스에 대한 연결 내가 그 부르는 모든 시간을 설정하는 것입니다 :

나는 사용하여 테이블에 액세스하기 전에 다른 데이터베이스에 연결하는 방법을 알고 모델/테이블이 필요합니다. 다른 데이터베이스가 있어야하기 때문입니다.

def set_database 
     ActiveRecord::Base.establish_connection({ :adapter => 'nuodb',:database => 'test_db',:host => 'localhost',:username => 'test_username',:password => 'test_password', :schema => 'TEST_SCHEMA'}) 
    end 

은 내가 모델을 부르는이 방법을 매번 실행하고 싶은 : 그냥 레일 컨트롤러에 before_filter 같은

, 어떻게이 같은 연결을 설정하는 방법을 실행하는 내 레일 애플 리케이션을 얻을 수 있습니다 .

저는 ActiveModel :: Callbacks를보고 있었지만 콜백을 찾을 수 없습니다.

답변

1

모든 모델은 ActiveRecord :: Base로부터 상속받습니다. 그래서 establish_connection은 모델에서 직접 사용할 수 있습니다.

# config/database.yml 

development: 
# first database configuration 

development_sec: 
# second database configuration 

그런 다음 모델에서 이것을 사용

class MyModel < ActiveRecord::Base 
establish_connection "#{Rails.env}_sec" 
end 

또는 connection_ninja

+0

같은 보석을 사용하는 것이이 마누 주셔서 감사합니다. 구현하기에 충분히 간단하며 원하는대로 작동합니다. –

관련 문제