我有嵌套的资源,并且我想允许部门/1/列表、公司/1/列表等等,我该怎么做?顺便说一句,我正在使用rails 5和cancancan 2.0
以下是我的文件:
routes.rb
resources :departments do
resources :lists
end
resources :lists do
member do
put :done
end
end
devise_for :users, :skip => [:registrations]
devise_scope :user do
root to: "devise/sessions#new"
get "/users/edit" => "devise/registrations#edit", :as => :edit_user_registration
patch "/users" => "devise/registrations#update", :as => :user_registration
put "/users" => "devise/registrations#update"
end
resources :users do
resources :lists
end
resources :companies do
resources :lists
endlist.rb
class List < ApplicationRecord
belongs_to :listable, polymorphic: true
enddepartment.rb
class Department < ApplicationRecord
has_many :lists, as: :listable
endcompany.rb
class Company < ApplicationRecord
has_many :lists, as: :listable
endlists_controller.rb
class ListsController < ApplicationController
load_resource :department
load_resource :company
load_resource :user
load_and_authorize_resource :list, :through => [:department, :company, :user]ability.rb
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if user.has_role? :admin
can :manage, :all
else
can :read, List, { :company => { :id => user.company_id } }
can :read, List, { :department => { :id => user.departments.first.id } }
end
end
end谢谢。
我还是想不通。
谁来帮帮我。
https://stackoverflow.com/questions/44474852
复制相似问题