2010-12-04 12 views
1

私は3つのテーブルUser:User_Interest、Interestを持っていますROR:2つのテーブルの間に等しくない条件

ユーザが持っていない関心のある名前を取得するにはどうすればよいですか?

(私はすでにそれらのすべてのモデルを設定している。)あなたの親切に助けを

感謝を。

+0

モデルアソシエーションのRailsガイド: Rails 3:http://guides.rubyonrails.org/association_basics.html Rails 2.3.x:http://guides.rubyonrails.org/v2.3.8/ association_basics.html – Swanand

答えて

0

これをUserクラスメソッドまたは特定のユーザーのインスタンスメソッドにすることができます。クラスメソッドについては、

def self.missing_interests(user) 
    difference = Interest.all - user.interests 
    difference.map { |d| d.name } 
end 

と呼び、User.missing_interests(some_user)と呼んでください。たとえば、

def missing_interests 
    difference = Interest.all - interests 
    difference.map { |d| d.name } 
end 

を試して、​​に電話してください。

これは、ユーザーのためにinterestsアソシエーションに含まれていないすべての興味の名前を持つ配列を返す必要があります。

+0

ありがとうございますが、少し変わります。私はコントローラで@missing_interests = Interest.all - User.find(セッション[:uid])。interest "を使用します。 – Niao

関連する問題