Hi, Here's the thing : I have a table with languages (name, label, id). languages id name label I'd like another table people with primary_language and secondary_langage that should refer to a language_id. people id firstname familyname primary_language -> language_id secondary_language -> language_id Because I got 2 references, I don't know how I can do. I think I have to explicitly say in the Person and Language model that primary_language and secondary_language is a language_id. How can I do ? Thanks
on 2008-10-30 15:12
on 2008-10-30 15:16
Here's how the table would look: people id firstname familyname primary_language -> primary_language_id secondary_language -> secondary_language_id And the class: class Person belongs_to :primary_language, :class_name => 'Language' belongs_to :secondary_language, :class_name => 'Language' end - Maurício Linhares http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/ (en) João Pessoa, PB, +55 83 8867-7208 On Thu, Oct 30, 2008 at 10:12 AM, David N.
on 2008-10-30 15:27
For assigning the language id you need to assign the language_id before saving the record. this should be record.primary_language_id = language.id record.secondary_language_id = language.id record.save! In your person model you can say, belongs_to :primary_language, :class_name => "Language", :foreign_key => "primary_language_id" for the relation ship. So in this case People.primary_language will be the language record. As for the Rails coding use the column name as "primary_language_id" instead of "primary_language". > > people > id > firstname > familyname > primary_language -> language_id > secondary_language -> language_id > > > Because I got 2 references, I don't know how I can do. I think I have to > explicitly say in the Person and Language model that primary_language > and secondary_language is a language_id. How can I do ? > > Thanks