如何在Ruby on Rails中访问Ruby中的现有用户电子邮件



我在带有Dewise Gem的Ruby上使用Ruby来验证用户。每当新用户签署其电子邮件地址时,我都会看到设计的是将新用户ID分配给该用户并在此注册电子邮件地址。现在,我想为所有第一次用户显示一条欢迎消息(我不希望此消息在第二次或第三次登录时出现(。要显示该消息,我想检查current_user.email在用户表中的所有注册电子邮件中(逻辑是:如果用户已经存在于用户表中欢迎显示(。我不确定如何访问表格中的所有电子邮件ID?还要在哪里进行检查。我希望此欢迎消息是用户在登录成功后立即看到的第一件事。任何人都可以帮忙。

我尝试在会话控制器中使用"资源" resource_name",但没有任何可行。

    # POST /resource/sign_in
    def create       
      self.resource = warden.authenticate!(auth_options)
      $sign = sign_in_count
      set_flash_message!(:notice, :signed_in)
      sign_in(resource_name, resource)
      yield resource if block_given?
      respond_with resource, location: after_sign_in_path_for(resource)      
    end

我正在尝试将登录用户登录的用户分配给一个名为$ sign的全局变量,以便我可以使用其值来检查用户是否第一次登录。

在您的应用中首次登录的消息显示消息,为什么不使用sign_in_count?

这避免您在数据库中获取所有电子邮件地址,以检查它是否已经存在

sign_in_countusers表中的列。应该是:

# sessions_controller.rb
def create
  super # just call predefined action 
  set_flash_message!(:notice, :signed_in) if resource.sign_in_count == 1
end

最新更新