0

モデルに「マッピング」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

では、どうすればそれを取り除くことができますか?

4

1 に答える 1