【发布时间】:2013-08-18 08:20:31
【问题描述】:
我有一个FooController,但没有模型 Foo - 它是第三方服务的网关。在FooController 中,do_bar 方法访问的资源是baz。目前任何人都可以通过FooController 管理其他人的baz,我想将管理限制在他们自己的范围内。
在我的能力.rb 中,我将以下内容写入initialize 方法:
can :manage, :foo
但是我想做的就是写这样的东西(当然这样不行):
can :manage, :foo
@baz.user == user
end
FooController:
load_resource :baz, find_by: :user_data, parent: false
def do_bar
@baz = Baz.find(params[:user_data]) #necessary otherwise @baz is nil
authorize! :manage, :foo
#other stuff
end
我本质上是想让@baz 实例(在FooController 中被操作)必须归该用户所有,以便他们能够管理它。
我该怎么做?
【问题讨论】:
标签: ruby-on-rails cancan