일대 다 연관을 사용하는 Demeter Law 위반을 피하는 방법에 대해 혼란스러워합니다. 이 전 모델과 같이 있다고 가정 해 봅시다 :일대 다 관계가있는 Demeter의 법칙
class Organization < ActiveRecord::Base
has_one :address
has_many :employees
end
내가 이렇게하는 법 데메테르의 위반이 될 것이라고 믿는다
organization.address.street_name
이것은 *의 address_street_name * 방법을함으로써 피할 수 있습니다. 그만큼 간단한 솔루션입니다. 그러나 이제 우리가 이것을한다고 가정 해 봅시다 :
organization.employees.each { |employee| puts employee.first_name }
이것은 Demeter의 법칙을 위반 한 것으로 보입니다. 당신은 여전히 Employee의 내부 구조에 대한 지식을 전시하고 있습니다. 이러한 유형의 위반을 피하는 가장 좋은 방법은 무엇입니까?