私は3つのテーブルUser:User_Interest、Interestを持っていますROR:2つのテーブルの間に等しくない条件
ユーザが持っていない関心のある名前を取得するにはどうすればよいですか?
(私はすでにそれらのすべてのモデルを設定している。)あなたの親切に助けを
感謝を。
私は3つのテーブルUser:User_Interest、Interestを持っていますROR:2つのテーブルの間に等しくない条件
ユーザが持っていない関心のある名前を取得するにはどうすればよいですか?
(私はすでにそれらのすべてのモデルを設定している。)あなたの親切に助けを
感謝を。
これを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
アソシエーションに含まれていないすべての興味の名前を持つ配列を返す必要があります。
ありがとうございますが、少し変わります。私はコントローラで@missing_interests = Interest.all - User.find(セッション[:uid])。interest "を使用します。 – Niao
モデルアソシエーションの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