0

我正在 Rails 上构建一个每日交易应用程序来训练自己使用 Ruby on Rails。

我已经使用 devise/cancan/rolify 安装了身份验证。

我想在 cancan 中创建两种类型的用户

  • 确认的用户
  • 尚未确认的用户

我怎样才能做到这一点?我如何访问拥有和未确认其帐户的用户(即单击通过电子邮件发送给他们的激活链接)。

4

1 回答 1

2

无需为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

而已。如果用户在没有所需权限的情况下尝试访问,他们将收到“未经授权”的响应。

我强烈建议您通读rolifycancan的文档。

于 2013-07-14T19:08:52.020 回答