2012-09-08 7 views
5

ja mając sporo niepokojące coraz cancan autoryzować moją nową konfigurację trasy poniżej:zatwierdzający przestrzeni nazw i zagnieżdżone kontrolery wykorzystujące CanCan

namespace :api do 
namespace :v1 do 
    resources :users do 
    resources :user_songs 
    resources :friendships 
    resources :plays 
    resources :likes 
    resources :songs 

śledzę to, co napisali tutaj https://github.com/ryanb/cancan/wiki/Nested-Resources i testowałem go z kontrolerem Posty podobające oddanie tego powyżej:

class Api::V1::LikesController < Api::V1::BaseController 

load_and_authorize_resource :user 
load_and_authorize_resource :like, :through => :user 

Korzystanie puszkę: dostęp: wszystko w pracach ability.rb ale cokolwiek innego starałem się granica to nie ma na przykład:

can :access, :likes 
can :access, Like 
can :access, :users 
can :access, User 
can :access, [:"users/likes", :users_likes] 

Nie jestem zbyt pewny, czy wina wynika z tras w przestrzeni nazw, czy nie. Wszelkie wskazówki będą niezwykle cenne!

Odpowiedz

5

Okazało się odpowiedź: To był nazw po wszystkim, to po prostu potrzebne

can :access, "api/v1/likes"

+0

Wygląda to działa tylko dla żądań GET i nie pisać próśb dodana może: tworzyć, „api/v1/lubi "sprawdzić, czy ma to znaczenie i nie miało to znaczenia. – nvd90

+0

Wyobraźmy sobie, że potrzebujemy puszki: dostęp,: lubi pod nią, żeby działał. – nvd90

+1

Wystąpił błąd z tym, ale został [naprawiony w 1.6.10] (https://github.com/ryanb/cancan/pull/675) –