Rails Delegate

Model treba da razgovara samo sa svojim neposrednim udruženjem. Prema zakonu Demetre, ne bi trebalo da razgovarate sa svojstvom asocijacije ili asocijacijom asocijacije.
Ovde govorimo o pristupu delegata Rails-a.
LOŠ MIRIS
class class <ActiveRecord :: Baza
pripada_to:
kraj korisnika
<%= @profile.user.address %>
<%= @profile.user.city %>
Rails pruža pomoćni metod za izvršavanje delegiranja, koji koristi DSL za generisanje metoda omotača. Takođe može sprečiti metod poziva greške na nil objektu ako je dodato: allow_nil => true.
Refaktorisan
class Profile < ActiveRecord::Base
belongs_to :user
delegate :address, :city, :to => :user, :prefix => true, :allow_nil => true
end
<%= @profile.user_address %>
<%= @profile.user_city %>