私のアプリでは、Photo has_and_belong_to_many :land_uses
Photo
モデルに次のヘルパー メソッドがあります。
def land_use_list
land_uses.map(&:name).join(', ')
end
これはコードの匂い (デメテル) のように感じますが、LandUse モデルに移動する方法を理解できませんでした。私がやりたいことは次のようなものです:
class LandUse < ActiveRecord::Base
...
def self.list
self.map(&:name).join(', ')
end
...
end
そのため、呼び出す代わりに を呼び出すphoto.land_use_list
ことができますphoto.land_uses.list
。
しかし、特定の写真に属するスコープされたインスタンスに対して呼び出されるのではなく、クラスに対して呼び出されるため、これは機能しません。
私が考えていることを行う方法はありますか?そして、より一般的に言えば、アプリでこのような問題にどのようにアプローチしますか? リスト コードを LandUse モデルに移動することは正しいアプローチですか、それとも別の方法をお勧めしますか?