モデルに「マッピング」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)
に対してのみアクセスできます。たとえば、 を持っているユーザーは自分のプロフィールを見ることができますが、 などの他のユーザーのプロフィールを見ることはできません。admin
current user
id == 2
my_controller/show/2
my_controller/show/1234
admin
My
プロジェクトにモデルがありません。理想的には、名前を変更するMyController
必要UserController
がありますが、何らかの理由でそれを行うことは許可されていません。
でコメントを外すload_and_authorize_resource
と、次MyController
のエラーが発生します
NameError in MyController#show
uninitialized constant My
では、どうすればそれを取り除くことができますか?