小编nvd*_*d90的帖子

使用CanCan授权Namespaced和嵌套控制器

我有很多麻烦让cancan授权我的新路线设置如下:

namespace :api do
namespace :v1 do
  resources :users do
    resources :user_songs
    resources :friendships
    resources :plays
    resources :likes
    resources :songs
Run Code Online (Sandbox Code Playgroud)

我已经按照这里发布的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
Run Code Online (Sandbox Code Playgroud)

使用can:access,:all in ability.rb有效,但我试图限制的任何其他内容都没有例如:

can :access, :likes
can :access, Like
can :access, :users
can :access, User
can :access, [:"users/likes", :users_likes]
Run Code Online (Sandbox Code Playgroud)

我不太确定责任是否是因为命名空间路由.任何指导都将非常感谢!

ruby ruby-on-rails cancan ruby-on-rails-3

5
推荐指数
1
解决办法
1533
查看次数

标签 统计

cancan ×1

ruby ×1

ruby-on-rails ×1

ruby-on-rails-3 ×1