如何在ruby中通过关联获取值?

时间:2013-04-17 16:05:52

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我有三张桌子,

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

在我的Alpha视图中,我想在所选field_name的{​​{1}}中显示drop down box,并提供更改和更新params的选项。

我尝试使用以下field_name表,但我不知道如何使用Beta类从Gamma获取值。

Beta

注意:<%= f.select :field_code, Beta.all.map{|b| [b.field_Code, b.set_code]} %> 应位于field_namealpha = :set_codebeta的位置。

1 个答案:

答案 0 :(得分: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