1対多の関連付けでデメテルの法則違反を回避する方法について混乱しています。次のようなモデルがあるとします。
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 }
これはデメテルの法則に違反しているように見えますが、それほど明白ではありません。あなたはまだ従業員の内部構造に関する知識を示しています。この種の違反を回避する最善の方法は何ですか?