如何检查用户是否存在于db中

时间:2016-07-25 17:22:19

标签: mysql ruby ruby-on-rails-4

在我的rails应用程序中,我有关系设置 用户has_many :contacts,用户的所有联系人都存储在联系人中

当我user.contacts时,我获得current_user的所有联系人我想检查已注册的用户联系人数已经存在于用户表中。我有一些解决方案,我将用户的每个联系人与db(用户表)进行比较。但是这个过程非常耗时,寻找更优化的方法。

2 个答案:

答案 0 :(得分:1)

假设您的Contact模型有email作为属性,User也有email作为属性。要查找通过作为current_user联系人的电子邮件注册的用户数,您可以执行以下操作:

contact_emails = current_user.contacts.pluck("contacts.email")
no_of_users_registered = User.where(email: contact_emails).count

答案 1 :(得分:0)

您可以使用关联扩展程序执行此操作:

class User 
  has_many :contacts do
    def persisted
      where(email: User.select(:email))
    end
  end
end

假设您的联系人和用户模型都有一个电子邮件字段。