2013-04-17 1 views
0

나는 세 개의 테이블을 가지고루비에서 연결별로 값을 얻는 방법은 무엇입니까?

Alpha - :set_code, :field_code 

Beta - :set_code, :field_code # both fields are primary key in BETA table 

Gamma - :field_code, :field_name 

내 모델의 세 가지 클래스가 : 나의 알파보기에서

Class Alpha 
    belongs_to :alpha_beta, foreign_key: 'set_code', class_name: 'Beta' 
end 

Class Beta 
    belongs_to :beta_gamma, foreign_key: 'field_code', class_name: 'Gamma' 
end 

Class Gamma 
end 

, 내가 선택한 params하여 drop down box에서 field_name를 표시하고주고 싶어 옵션을 사용하여 field_name을 변경하고 업데이트하십시오.

Beta 테이블을 다음과 같이 시도했지만 클래스를 사용하여 Gamma에서 값을 가져 오는 방법을 알지 못합니다.

<%= f.select :field_code, Beta.all.map{|b| [b.field_Code, b.set_code]} %> 

참고 : field_name을 받고해야하는 위치 alpha 테이블 :set_code = beta 테이블 :set_code.

답변

1

이게 당신이 찾고 있는게 있니?

<%= f.select :set_code, Beta.all.map {|b| [b.beta_gamma.field_name, b.set_code] } %> 

belongs_to 관계를 통해 관련 레코드에 액세스 할 수 있습니다.

alpha = Alpha.first 
alpha.alpha_beta #=> instance of Beta 
alpha.alpah_beta.beta_gamma #=> instance of Gamma 
+0

감사합니다. 알려 주시면 알려 드리겠습니다. – Vinay