0

私は3つのテーブルを持っています、

Alpha - :set_code, :field_code 

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

Gamma - :field_code, :field_name

モデルには 3 つのクラスがあります。

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

私の Alpha ビューでは、選択field_nameした でを表示し、を変更および更新するオプションを提供したいと考えています。drop down boxparamsfield_name

次の表のように試しましたが、クラスを使用してBeta値を取得する方法がわかりません。GammaBeta

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

注: はfield_namewhere alphatable :set_code= betatableの下にある必要があります:set_code

4

1 に答える 1

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
于 2013-04-17T16:09:18.867 に答える