我有很多麻烦让cancan授权我的新路线设置如下:
namespace :api do
namespace :v1 do
resources :users do
resources :user_songs
resources :friendships
resources :plays
resources :likes
resources :songs
我已经按照这里发布的内容https://github.com/ryanb/cancan/wiki/Nested-Resources进行了测试,并通过以下方式对喜欢的控制器进行了测试:
class Api::V1::LikesController < Api::V1::BaseController
load_and_authorize_resource :user
load_and_authorize_resource :like, :through => :user
使用can:access,:all in ability.rb有效,但我试图限制的任何其他内容都不是例如:
can :access, :likes
can :access, Like
can :access, :users
can :access, User
can :access, [:"users/likes", :users_likes]
我不太确定责任是否是因为命名空间路由。任何指导都将非常感谢!
答案 0 :(得分:5)
找到答案:毕竟这是命名空间,它只需要一个
can :access, "api/v1/likes"