0
我有FooController
但沒有Foo模型 - 它是通往第三方服務的網關。在FooController
中,由do_bar
方法訪問的資源是baz
。目前任何人都可以管理其他人的baz
,通過FooController
,我想限制管理只屬於他們自己。Cancan:試圖限制對沒有同名模型的控制器的訪問
在我ability.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
我基本上希望讓這個日e @ baz實例 - 正在FooController
中操作,必須由該用戶擁有,以便他們能夠管理它。
我該怎麼做?
就是這樣。隊友的歡呼聲 –