2011-03-14 5 views
0

이전 Rails 2 애플리케이션 데이터베이스를 새로운 Rails 3 애플리케이션으로 변환하는 스크립트를 작성 중입니다. 새로운 응용 프로그램은 데이터베이스 스키마를 다시 작성하고 단순화합니다.레일스 외부에서 ActiveRecord3의 연관 기능을 어떻게 사용합니까?

나는 Rails와는 별개로 독립 실행 형 루비 프로그램을 만들었고, 두 개의 데이터베이스 연결을 조작하고 한 시스템에서 다른 시스템으로 데이터를 옮기기 위해 Ruby 모듈로 어댑터 패턴을 활용하고 있습니다.

내가 성공적으로 액티브을 구현 한 내 번역기 모델에서 내 모든 발견 ("active_record"를 포함하여) 예상대로 검증이 노력하고 있습니다. 그러나 연결은 method_missing 호출을 초래합니다.

연관이 Rails 환경 외부에서 작동하도록하려면 특별한 작업을해야합니까? 나는 "당신이이 키 파일을 요구하는 것을 잊었다"와 같은 간단한 대답을 원합니다.

+1

일부 코드 샘플을 게시 할 수 있습니까? 'about_included_record' '에 대한 귀하의 회선이 문제가 될 수있는 것처럼 들립니다. AR을 올바르게 작동 시키려면 모델 클래스가'ActiveRecord :: Base'를 상속 받아야합니다. 예 :'class Something dunedain289

답변

2

여기 레일없이 액티브를 사용하여 최소한의 예입니다 : 이것보다 정말 더 이상 없다

require 'active_record' 

class Site < ActiveRecord::Base 
    has_many :users 
end 


class User < ActiveRecord::Base 
    belongs_to :site 
end 



ActiveRecord::Base.establish_connection(
    :adapter => 'mysql', 
    :database => 'test', 
    :user => 'root' 
) 

s = Site.first 

p s 
p s.users 
p s.users[0].site 

! 여기에 사용 된 보석은 activerecord 3이지만 똑같은 예제는 activerecord 2에서 작동합니다.

추신 : 분명히이 테스트를 실행하려면 사이트 및 사용자 테이블이있는 테스트 데이터베이스가 필요합니다.

관련 문제