2016-08-07 48 views
0

Es ist ein paar Jahre her, seit ich irgendeine Rails-Entwicklung gemacht habe. Früher gab es eine Möglichkeit, auf ein untergeordnetes Attribut in einer Eins-zu-eins-Beziehung als Attribut dieses Modells zuzugreifen.Rails Eins-zu-eins untergeordnetes Attribut, das als Eigenschafts-Attribut aufgerufen wird

So zum Beispiel, wenn Sie zwei Modelle haben: Person und Address, und sie hatten eine 1: 1-Beziehung, könnten Sie zurück @person.zip_code, statt @person.address.zip_code ziehen.

Das war früher einfach, wenn Sie die barrierefreien Attribute im Modell explizit definieren konnten. Es scheint, dass dies jetzt in Rails 4 ist.

Irgendwelche Ideen?

Antwort

0

Es ist immer noch in Rails 4 verfügbar.
Was Sie wollen, ist delegate Methode.

class Address 
    belongs_to :person 
end 

class Person 
    has_one :address 
    delegate :zip_code, to: :address 
end 

Jetzt können Sie @person.zip_code tun.

Bitte lesen Sie die docs, um mehr über Optionen wie prefix und allow_nil zu erfahren.

+0

Perfekt !! Vielen Dank. Das ist so viel einfacher. – astangelo