我正在Rails上构建一个日常交易应用程序来训练自己使用Ruby on Rails。
我已经使用devise / cancan / rolify安装了身份验证。
我想在cancan中创建两种类型的用户
我怎样才能实现这一目标?我如何访问那些拥有和未确认其帐户的设备用户(即点击通过电子邮件发送给他们的激活链接)。
答案 0 :(得分: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
(请参阅:here)。
class ProductsController < ActionController::Base
load_and_authorize_resource
end
就是这样。如果用户尝试在没有所需权限的情况下进行访问,则会收到“未经授权”的响应。