2016-03-25 10 views
1

Ich habe ein employee Modell und address Modell. Jetzt kann der Mitarbeiter zwei Adressen haben: eine permanente und eine andere ist temporäre.Wie macht man eine Beziehung in Ruby auf Schienen?

Ich möchte die Beziehung, die Mitarbeiter hat zwei Adressen ist eine permanente und andere ist vorübergehend.

Wie kann ich auch Adresse für den Mitarbeiter in Mitarbeiter-Controller während der Erstellung von Mitarbeiter speichern?

Antwort

4

Ich möchte die Beziehung, die Mitarbeiter hat zwei Adressen ist permanent und andere ist temporär.

Sie können mit 2 has_one:

class Address < ActiveRecord::Base 
    belongs_to :employee 
end 

class Employee < ActiveRecord::Base 
    has_one :permanent, class_name: 'Address', foreign_key: 'permanent_address_id' 
    has_one :temporary, class_name: 'Address', foreign_key: 'temporary_address_id' 
end 

die documentation lesen.

Wie kann ich die Adresse für den Mitarbeiter in der Mitarbeiter-Controller speichern, während Mitarbeiter erstellen?

Dies kann mit accepts_nested_attributes_for

+0

So 'permanent_address_id' &' temporary_address_id' integer Reihen in Adresstabelle sein wird? –

+0

@SulmanBaig ja. –

1

Sie erreicht werden kann, wie dies tun: -

has_one :permanent_address, class_name: 'Address', :foreign_key => 'permanent_address_id' 
has_one :temporary_address, class_name: 'Address', :foreign_key => 'temporary_address_id' 
Verwandte Themen