我在让 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并通过将其放在上面来使用 likes 控制器对其进行测试:
class Api::V1::LikesController < Api::V1::BaseController
load_and_authorize_resource :user
load_and_authorize_resource :like, :through => :user
在ability.rb 中使用 can :access, :all 有效,但我试图限制的其他任何东西都没有,例如:
can :access, :likes
can :access, Like
can :access, :users
can :access, User
can :access, [:"users/likes", :users_likes]
我不太确定责任是否是因为命名空间路由。任何指导将不胜感激!