我正在使用Devise
及其确认选项
如您所知,除非用户单击确认邮件中的链接,否则不会激活用户。
我在这里遇到的问题是,我们可以看到所有成员,包括尚未确认的用户!
@users = User.all将获取所有用户!我不想包括 未确认的用户。
是否有任何技术可以忽略那些尚未确认的人? 在用户模型中添加内容将是最好的!
请帮帮我:)。
答案 0 :(得分:1)
Devise将为您提供属性confirmed_at
。您可以使用:
@user = User.where('confirmed_at IS NOT NULL')
并且,如果我没有弄错,确认后Devise将confirmation_token设置为NULL以便它不能再次使用,所以你也可以这样做:
@user = User.where('confirmation_token IS NULL')
答案 1 :(得分:1)
我建议您在用户模型中添加一个范围以获得一致的访问权限:
class User
def self.unconfirmed
where('users.confirmed_at is null')
end
def self.confirmed
where('users.confirmed_at is not null')
end
end
然后在控制器(或其他模型)中,可以按以下方式访问此列表:
@users = User.confirmed
范围的美妙之处在于它们可以被进一步链接:
@unformed_males = User.confirmed.where(:sex => 'male').order(:height)
你明白了;)
HTH
答案 2 :(得分:0)
Devise将confirmed_at列添加到您的users表中。所以你可以使用如下:
@users = User.all(:conditions => ["confirmed_at is not null"])