Ruby on rails Cancan:用户可以查看其后台显示视图

Ruby on rails Cancan:用户可以查看其后台显示视图,ruby-on-rails,ruby-on-rails-4,cancan,Ruby On Rails,Ruby On Rails 4,Cancan,使用rails 4,Cancan 1.6.10 大家好, 我有两个UsersController:一个用于前端,另一个用于后端的under/backoffice,两者都使用相同的用户模型 我为普通用户定义了如下能力: can(:manage, User) do |u| u == user end 鉴于管理员用户将能够管理所有用户: can :manage, User 我还有两个显示视图,一个在前面:/users/:id,另一个在后台:/backoffice/users/:id 我的问题是

使用rails 4,Cancan 1.6.10

大家好,

我有两个UsersController:一个用于前端,另一个用于后端的under/backoffice,两者都使用相同的用户模型

我为普通用户定义了如下能力:

can(:manage, User) do |u|
  u == user
end
鉴于管理员用户将能够管理所有用户:

can :manage, User
我还有两个显示视图,一个在前面:/users/:id,另一个在后台:/backoffice/users/:id

我的问题是,现在有限的用户可以通过后台URL查看其配置文件,因为他可以管理此用户。当然,这是不可接受的


我知道这应该不太难纠正,但您会使用什么解决方案?

似乎有一种方法可以命名这些功能的名称。请参见此处继续CanCanCan项目的Wiki条目:


它主要做的是重写由ApplicationController确定的传递命名空间的能力类。Ability类有两个不同的规则集,这取决于它初始化时使用的名称空间。

谢谢Sebastian,这就是我要找的。我不觉得这个方法很性感,所以我在等待另一个答案。如果没有更好的答案,我会接受你的。没问题。我想说,能力课的扩展是可以的。不过,名称空间的确定相当粗糙。