В Rails есть has_one :through
ассоциация, которая помогает установить однозначную ассоциацию с третьей моделью, проходя через вторую модель. Какая реальная польза от этого, помимо создания быстрой ассоциации, в противном случае это был бы дополнительный шаг.
Взяв этот пример из руководства Rails:
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
может позволить нам сделать что-то вроде:
supplier.account_history
которые в противном случае были бы достигнуты как:
supplier.account.history
Если это только для более простого доступа, то технически может существовать однозначная ассоциация, которая связывает модель с некоторой n-й моделью, проходящей через n-1 модели для облегчения доступа. Есть ли что-то еще, чего мне не хватает, кроме ярлыка?