我正在 Rails 上构建一个每日交易应用程序来训练自己使用 Ruby on Rails。
我已经使用 devise/cancan/rolify 安装了身份验证。
我想在 cancan 中创建两种类型的用户
- 确认的用户
- 尚未确认的用户
我怎样才能做到这一点?我如何访问拥有和未确认其帐户的用户(即单击通过电子邮件发送给他们的激活链接)。
我正在 Rails 上构建一个每日交易应用程序来训练自己使用 Ruby on Rails。
我已经使用 devise/cancan/rolify 安装了身份验证。
我想在 cancan 中创建两种类型的用户
我怎样才能做到这一点?我如何访问拥有和未确认其帐户的用户(即单击通过电子邮件发送给他们的激活链接)。
无需为confirmed
和添加角色unconfirmed
。您可以user.confirmed?
在ability.rb
文件中使用来控制授权:
# models/ability.rb
if user.confirmed?
can :manage, Model
end
if !user.confirmed?
can :view, Model
end
注意:您可以使用if/else
构造,但我更喜欢将我的规则很好地分开。
关于您的评论,您正在重新实现已经完成的工作。使用 cancan,您可以使用load_and_authorize_resource
(请参阅:此处)。
class ProductsController < ActionController::Base
load_and_authorize_resource
end
而已。如果用户在没有所需权限的情况下尝试访问,他们将收到“未经授权”的响应。