2013-04-17 1 views
0

У меня есть три таблицы,Как получить значения путем объединения в ruby?

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 

На моем взгляде Альфа, я хочу, чтобы отобразить field_name в drop down box выбранного params и дать возможность изменения и обновления field_name.

Я пробовал использовать таблицу до Beta, и я не знаю, как получить значение от Gamma, используя класс Beta.

<%= 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

Смежные вопросы