5

我在让 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]

我不太确定责任是否是因为命名空间路由。任何指导将不胜感激!

4

1 回答 1

5

找到了答案:毕竟是命名空间,它只需要一个

can :access, "api/v1/likes"

于 2012-09-09T17:29:03.420 回答