Rails has_one: poprzez powiązanie

Szyny mająhas_one :through stowarzyszenie, które pomaga ustanowić powiązanie jeden do jednego z trzecim modelem, przechodząc przez drugi model. Jakie jest rzeczywiste wykorzystanie tego, poza tworzeniem powiązania skrótów, które w przeciwnym razie byłoby dodatkowym krokiem.

Biorąc ten przykład z Railsprzewodnik:

class Supplier < ActiveRecord::Base
  has_one :account
  has_one :account_history, :through => :account
end

class Account < ActiveRecord::Base
  belongs_to :supplier
  has_one :account_history
end

class AccountHistory < ActiveRecord::Base
  belongs_to :account
end

może pozwolić nam zrobić coś takiego:

supplier.account_history

które w przeciwnym razie zostałyby osiągnięte jako:

supplier.account.history

Jeśli chodzi tylko o łatwiejszy dostęp, to technicznie może istnieć powiązanie jeden-do-jednego, które łączy model z n-tym modelem przechodzącym przez modele n-1 dla łatwiejszego dostępu. Czy jest coś jeszcze, czego brakuje mi poza skrótem?

questionAnswers(3)

yourAnswerToTheQuestion