0

has_one Email と has_many Friends のモデル ユーザーがいます。

電子メールが User モデルのフィールドである場合、次を使用して、電子メールが nil であるすべてのユーザーを取得できます: User.where("email IS NULL")

ただし、このモデルが user_id キーを持つ User_to User である別の Email モデルに電子メールがある場合、これを行う方法がわかりません。

また、友達がいないすべてのユーザーを検索したい場合、ユーザーが_多くの友達と友達が_ユーザーに属している場合、どうすればこれを行うことができますか

4

3 に答える 3

2
User.joins(:email).where(email: {user_id: nil})

友達のいないすべてのユーザー

于 2013-09-16T07:34:41.107 に答える
1

これを行うには、カウンター キャッシュを使用できます。例:

class Friend < ActiveRecords::Base
  belongs_to :user, counter_cache: true
end

これを機能させるには、users テーブル (User モデル) に friends_count フィールドが必要です。その後、クエリを実行できます

User.where(friends_count: 0)

http://guides.rubyonrails.org/association_basics.html

于 2013-09-16T07:33:10.583 に答える