2

Я нахожусь на рельсах 3.0 и пытаюсь выяснить, что было бы правильным способом настроить принадлежность: через отношения (которые), которые я знаю, невозможно. Вот пример:Рельсы принадлежат через через ассоциацию

class ParentCompany < ActiveRecord::Base 
    has_many :subsidiaries 
    has_many :employees, :through => :subsidiaries 
end 

class Subsidiary < ActiveRecord::Base 
    belongs_to :parent_company 
    has_many :employees 
end 

class Employee < ActiveRecord::Base 
    belongs_to :subsidiary 
    belongs_to :parent_company, :through :subsidiary # <-- I know this is invalid 
end 

Я знаю, что могу решить, выполнив:

class Employee < ActiveRecord::Base 
    def parent_company 
    subsidiary.parent_company 
    end 
end 

Однако, я хотел бы знать, если я могу сделать выше, с помощью ассоциаций.

ответ

0

Вы можете использовать delegate для достижения этой цели без использования ассоциации

class Employee < ActiveRecord::Base 
    belongs_to :subsidiary 
    delegate :parent_company, to: :subsidiary 
end