2011-06-24 4 views
0

たとえば、2つのモデル、記事、およびコメントで記事またはコメントの所有者を返すメソッド名 'owner'があります。 むしろすべてのモデルに複数のモデルに対して重複したメソッドを管理するにはどうすればよいですか?

def owner 
    user 
end 

を追加するよりも、1つの方法で複数のモデルを管理する方法はありますか?

+0

このメソッドを特に追加する場合は、ユーザーではなく所有者の名前を変更する方が意味があります。または、おそらく「著者」と「コメント投稿者」 – MissingHandle

答えて

1

はこれを処理するいくつかの方法があります。method_missingを追加

  1. 各モデル

  2. 方法を含むモジュールを含むActiveRecordベース

  3. にインスタンスメソッドを追加しました上記とほぼ同じ原理ですが、少しハッキーです。

1の長所は、2 & 3のプロが、あなたがインクルードする必要がないだろうということです...それだけであなたが欲しいけどよ行を含める必要がモデル内のメソッドが含まれていることを

ですたとえ関連性のないものであっても、すべてのモデルはそれを持っています。

関連する問題