我正在使用Devise
它的确认选项。
如您所知,除非用户单击确认邮件中的链接,否则不会激活用户。
我这里的问题是,我们可以看到包括尚未确认的用户在内的所有成员!
@users = User.all 将获取所有用户!我不想包括未经确认的用户。
有什么技巧可以忽略那些尚未确认的人吗?
在用户模型中添加一些东西将是最好的!
请帮我:)
我正在使用Devise
它的确认选项。
如您所知,除非用户单击确认邮件中的链接,否则不会激活用户。
我这里的问题是,我们可以看到包括尚未确认的用户在内的所有成员!
@users = User.all 将获取所有用户!我不想包括未经确认的用户。
有什么技巧可以忽略那些尚未确认的人吗?
在用户模型中添加一些东西将是最好的!
请帮我:)
设计会给你属性confirmed_at
。您可以使用:
@user = User.where('confirmed_at IS NOT NULL')
而且,如果我没记错的话,在确认 Devise 后将 Confirmation_token 设置为 NULL 以便它不能再次使用,所以你也可以这样做:
@user = User.where('confirmation_token IS NULL')
我建议为您的用户模型添加一个范围以实现一致的访问:
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)
你明白了;)
高温高压
Devise 将 Confirmed_at 列添加到您的用户表中。所以你可以使用如下:
@users = User.all(:conditions => ["confirmed_at is not null"])