То, что вы мне описываете, звучит так, как будто вы смешиваете Аутентификацию и Авторизацию.Я говорю о смешивании, потому что определение, разрешаете ли вы пользователю доступ к / user / 1 vs / user / 2, - это то, для чего нужна авторизация.
Аутентификация - это процесс определения того, «кем вы себя говорите», тогда какавторизация - это процесс определения того, «разрешено ли вам идти туда».
Пока вы используете устройство для аутентификации, и вы захотите взглянуть на получение другого камня дляАвторизация (я предпочитаю cancan.)
Если вы не хотите идти по пути полной авторизации (я бы рекомендовал против, но ...), вы можете сделать проверку в before_filter
пользовательского контроллера, чтобы увидеть, есть ли current_user_id == id_from_the_url
.
И для перенаправления после входа в систему вы захотите использовать ловушку devise after_sign_in_path_for
, которая будет выглядеть примерно так:
class ApplicationController < ActionController::Base
def after_sign_in_path_for(resource)
return user_path(resource)
end
end
Источник: https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in