То, что вы предлагаете, не может быть сделано простым и понятным способом, и, кроме того, нелогично.
class Employee
belongs_to :company
belongs_to :manager
end
является единственным чистым решением. Это имеет четко определенные отношения. Эти отношения должны быть доступны в любом случае: как бы вы узнали, кто менеджер для bob
?
Решение, как вы предлагаете, где вы можете написать bob.company.my_manager
, не имеет смысла, потому что bob.company
является его компанией, и на этом уровне (Company
) больше нет знаний о bob
.
Для полноты картины: фактически менеджер - это сам работник, поэтому мы бы написали это отношение немного по-другому:
class Employee
belongs_to :manager, :class => Employee
end
(а в таблицу employees
необходимо добавить поле manager_id
).
Надеюсь, это поможет.