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