我在带有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_count
是users
表中的列。应该是:
# sessions_controller.rb
def create
super # just call predefined action
set_flash_message!(:notice, :signed_in) if resource.sign_in_count == 1
end