モデルに「マッピング」MyControllerしたいUser
#ability
class Ability
include CanCan::Ability
def initialize user
user ||= User.new
if user.has_role? :admin
can :manage, :all
else
can :read, :all
can :read, User do |u|
u && u.user_id == user.id
end
end
end
end
#routes
get 'my_controller/show/(:id)', to: 'MyController#show'
#controller
class MyController < ApplicationController
# load_and_authorize_resource
def show
# showing a user
end
end
したがって、およびmy_controller/show/(:id)に対してのみアクセスできます。たとえば、 を持っているユーザーは自分のプロフィールを見ることができますが、 などの他のユーザーのプロフィールを見ることはできません。admincurrent userid == 2my_controller/show/2my_controller/show/1234admin
Myプロジェクトにモデルがありません。理想的には、名前を変更するMyController必要UserControllerがありますが、何らかの理由でそれを行うことは許可されていません。
でコメントを外すload_and_authorize_resourceと、次MyControllerのエラーが発生します
NameError in MyController#show
uninitialized constant My
では、どうすればそれを取り除くことができますか?