У меня есть модель пользователя, на которой я использую устройство и cancancan. Вот моя способность:CanCanCan: Позволяет управлять только профилем пользователей
if user.role? :patient
can :access_profile, User, :id => user.id
end
где access_profile псевдоним:
alias_action :show, :edit, :update, :destroy, :to => :access_profile
В моей users_controller я использую load_and_authorize_resource. Например, когда я пытаюсь «users/4» и current_user.id = 3 Я могу туда добраться.
В журналах я вижу это:
User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 4]]
User Load (0.6ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT 1 [["id", 3]]
Rendered users/show.html.erb within layouts/application (0.4ms)
Здесь первый запрос приходит от метода set_user. Я предполагаю, что второй запрос загружает мой ресурс для авторизации. И здесь, поскольку current_user.id = 3 и во втором запросе я вижу 3 тоже, я думаю, именно поэтому я уполномочен. Но id во втором запросе должен быть 4, я думаю.
Что нужно сделать для того, чтобы метод load_and_authorize работал правильно.