私はこの関係を持っている:Rails 3:組織の関係にあるユーザーの同僚ですか?
class Organization < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :organization
end
そして、私は(同じ組織に参加している、すなわち人)、ユーザの同僚を収集したいと思います。
簡単な方法は、このようなメソッドを記述するために、次のようになります。
def coworkers
organization ? organization.users - [self] : []
end
しかし、私は考え始めたと私はhas_manyの関係を介してこれを行うことができますように感じました。
私はこれをやって終了:除くだけで正常に動作している
class User < ActiveRecord::Base
belongs_to :organization
has_many :coworkers, :through => :organization, :source => :users
end
は、ユーザーが同僚に含まれます。私が今知りたいのですがどのような
は次のとおりです。私はこれを達成するための良い方法を行ったよう
- は、メソッドを定義していますか?
- 実際のメソッドを定義せずに実際にユーザーを除外することなく、has_manyやその他の関係を使用してこれを実現する方法はありますか?
- クエリのパフォーマンス、キャッシング、または私が気づいていない重要なポイントに関して最適なものはどれですか?
ありがとう!
は、更新を参照してください.... – davidb