2012-09-08 20 views
5

tôi có khá nhiều rắc rối nhận Cancan cho phép thiết lập các tuyến đường mới của tôi dưới đây:ủy quyền namespaced và Nested bộ điều khiển sử dụng Cancan

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

Tôi đã theo những gì đã được đăng ở đây https://github.com/ryanb/cancan/wiki/Nested-Resources và thử nghiệm nó với bộ điều khiển thích bởi đặt này trên:

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

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

Sử dụng có thể: truy cập,: tất cả các công trình ability.rb nhưng bất cứ điều gì khác tôi đã cố gắng để hạn chế là chưa ví dụ:

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

Tôi không quá chắc chắn nếu đổ lỗi là do các tuyến đường không gian tên hay không. Bất kỳ hướng dẫn nào sẽ được đánh giá rất cao!

Trả lời

5

Tìm thấy ra câu trả lời: Đó là không gian tên sau khi tất cả, nó chỉ cần một người

can :access, "api/v1/likes"

+0

Có vẻ như điều này chỉ làm cho các yêu cầu get và không gửi yêu cầu bổ sung có thể: tạo, "api/v1/thích "để xem liệu nó có quan trọng hay không và nó không tạo nên sự khác biệt. – nvd90

+0

Tìm ra cần có thể: truy cập,: thích ngay bên dưới nó để nó hoạt động. – nvd90

+1

Có một lỗi với điều này, nhưng nó đã được [cố định trong 1.6.10] (https://github.com/ryanb/cancan/pull/675) –

Các vấn đề liên quan