在我的Rails應用程序,我有關係的設置,例如具有 用戶has_many :contacts
,用戶的所有聯繫人保存在聯繫人我如何檢查用戶是否在數據庫中存在或不
當我做user.contacts
我得到的所有current_user
的聯繫人我想檢查有多少用戶聯繫人已經註冊,意味着用戶表中已存在。我有一些解決方案記住我的用戶與db(用戶表)的每個聯繫人的比較。但是這個過程非常耗時,尋找更優化的方式。
在我的Rails應用程序,我有關係的設置,例如具有 用戶has_many :contacts
,用戶的所有聯繫人保存在聯繫人我如何檢查用戶是否在數據庫中存在或不
當我做user.contacts
我得到的所有current_user
的聯繫人我想檢查有多少用戶聯繫人已經註冊,意味着用戶表中已存在。我有一些解決方案記住我的用戶與db(用戶表)的每個聯繫人的比較。但是這個過程非常耗時,尋找更優化的方式。
假設您的Contact
型號具有email
作爲屬性,而User
也具有email
作爲屬性。要查找與那些爲current_user
接觸的電子郵件註冊用戶的數量,你會怎麼做:
contact_emails = current_user.contacts.pluck("contacts.email")
no_of_users_registered = User.where(email: contact_emails).count
你到底想要什麼?添加一些示例記錄。這個問題有點混亂。 – aBadAssCowboy
謝謝!爲你的答案,但我不是在尋找這個。我的意思是eg:比方說,user1有很多聯繫人(他的朋友的email_addresses),現在我想檢查他的firend已經註冊了多少人 –
@VibhooMishra我已經用該解決方案更新了答案 – aBadAssCowboy
你可以使用關聯擴展做到這一點:
class User
has_many :contacts do
def persisted
where(email: User.select(:email))
end
end
end
假設兩者的聯繫人和用戶模型有一個電子郵件字段。
你需要所有在系統中有聯繫人的用戶嗎? –
定義聯繫人是否存在可用於確定聯繫人是否已存在的唯一密鑰? (可能是一個電子郵件地址或其他影響) – engineersmnky
請分享'describe contacts'和'describe users'的輸出。 – marmeladze