【发布时间】:2014-04-17 01:58:05
【问题描述】:
我在 Rails 4 (cancancan) 上使用 CanCan,我只想授权当前用户访问设置页面。
例如,用户 ID 1 只能访问 /settings/1。用户 ID 1 应该无法查看 /settings/2 或任何其他 ID。
我的角色是:管理员、用户、访客、被禁止
能力.rb:
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
if user.admin?
can :manage, :all
else
can :read, :all
end
end
end
用户控制器:
def settings
@user = User.find(params[:id])
end
【问题讨论】:
-
您是否将
settings定义为路由中的资源?如果是的话,也许将其更改为资源将是一个很好的解决方案。我的意思是任何用户只存在一个(自己的)设置页面。 -
到目前为止你运气好吗?
标签: ruby-on-rails cancan