Я пытаюсь создать в rails 5 приложений с устройством, которое должно работать как социальная сеть, поэтому у каждого пользователя есть свой профиль.После обновления пользователя вместо возврата к профилю сервер перенаправляет на локальный хост, затем появляется сообщение Filter chain halted as :require_no_authentication rendered or redirected
, и только после этого загружается профиль пользователя.Также в профиле отображается сообщение «Вы уже вошли в систему».Моя цель - стереть эти перенаправления.
- Я пытался изменить перенаправление в пользовательском
RegistrationController
, но потом было сказано, что перенаправлений слишком много, поэтому я не могу его просто заменить. - Я пытался получить разные корни для аутентифицированных и не прошедших проверку пользователей в
routes.rb
, но это не изменило поведение - Я пытался отстать от
:require no authentication
, но на самом деле я не совсем уверенпонял это правильно, а также ничего не изменило. after_sign_in_path_for
настроен на профиль пользователя
Это вывод сервера:
Started PUT "/users" for 127.0.0.1 at 2019-06-04 12:13:37 +0200
Processing by Users::RegistrationsController#update as HTML
Parameters: {"email"=>"asdf@asdf.de", "password"=>"[FILTERED]", "password_confirmat
ion"=>"[FILTERED]", "current_password"=>"[FILTERED]"}, "commit"=>"Update"}
User Load (0.8ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 ORDER BY `users`.`id` ASC LIMIT 1
User Load (0.6ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT
1
(0.3ms) BEGIN
(0.4ms) COMMIT
Redirected to http://localhost:3000/
Completed 302 Found in 295ms (ActiveRecord: 2.1ms)
Started GET "/" for 127.0.0.1 at 2019-06-04 12:13:37 +0200
Processing by Users::SessionsController#new as HTML
User Load (0.7ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 ORDER
BY `users`.`id` ASC LIMIT 1
Redirected to http://localhost:3000/users/1
Filter chain halted as :require_no_authentication rendered or redirected
Completed 302 Found in 15ms (ActiveRecord: 0.7ms)
Started GET "/users/1" for 127.0.0.1 at 2019-06-04 12:13:37 +0200
Processing by UsersController#show as HTML
Parameters: {"id"=>"1"}
User Load (0.6ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 ORDER
BY `users`.`id` ASC LIMIT 1
User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT
1
Rendering users/show.html.erb within layouts/application
Rendered users/show.html.erb within layouts/application (1.1ms)
Rendered shared/_navbar.html.erb (0.7ms)
Completed 200 OK in 162ms (Views: 145.3ms | ActiveRecord: 1.1ms)
Кроме того, почему пользователь снова регистрируется после обновления?Это правильное поведение?Я не могу понять, где происходит перенаправление на localhost, и вмешиваться.Буду признателен за любую помощь.
Редактировать 1
Итак, чтобы уточнить.Я пытался использовать authenticated_root
, но затем я получаю сообщение об ошибке Couldn't find User without an ID
.
devise_scope :user do
authenticated :user do
root to: 'users#show', as: :authenticated_root
end
root to: 'users/sessions#new'
end
Также мне не удается изменить перенаправление с root на профиль пользователя.Таким образом, RegistrationController
без изменений.Я хотел бы сказать в методе обновления или где-то еще "после обновления перейдите в профиль пользователя".