Rails has_one: a través de la asociación

Rieles tiene unahas_one :through asociación que ayuda a configurar una asociación uno a uno con un tercer modelo pasando por un segundo modelo. ¿Cuál es el uso real de eso además de hacer una asociación de accesos directos, que de otra manera estaría a un paso adicional de distancia?

Tomando este ejemplo de los rielesguía:

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

podría permitirnos hacer algo como:

supplier.account_history

que de otro modo se alcanzaría como:

supplier.account.history

Si es solo para un acceso más simple, técnicamente podría haber una asociación uno a uno que conecte un modelo con un modelo nth pasando por los modelos n-1 para un acceso más fácil. ¿Hay algo más que me esté perdiendo además del atajo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta