Привет, я пытаюсь предложить сброс пароля для моих пользователей ... Я использую Devise в своем приложении rails, логика работает для проверки паролей с истекшим сроком действия, однако, когда я пытаюсь перенаправить пользователя в корневой каталог devise (edit_password_path и т. Д.)они перенаправлены в root_path ??Как я могу отключить это поведение по умолчанию, потому что они могут быть перенаправлены куда-либо еще, кроме разработки конкретных корней ...
Вот мой код
def is_password_expired?
if current_user.password_updated_at.present? || !current_user.password_updated_at.to_datetime.between?(
Time.now.to_datetime - 3.months, Time.now.to_datetime)
redirect_to edit_user_password_path
elsif !current_user.password_changed_at.to_datetime.between?(
Time.now.to_datetime - 3.months, Time.now.to_datetime)
redirect_to edit_user_password_path
else
return true
end
end
Поэтому я попытался создать after_sign_in_path (ресурс)метод, и это приводит меня к конечной точке edit_user_path, однако браузер просто говорит This page isn’t working
localhost redirected you too many times.
config.rb
devise_scope :user do
get 'login' => 'users/sessions#login'
get 'password_submitted' => 'users/passwords#submitted'
get 'confirmations/submitted' => 'users/confirmations#submitted'
get 'users/sign_up_as_lender' => 'users/registrations#sign_up_as_lender'
get 'users/registration/investor' => 'users/registrations#investor'
get 'users/registration/borrower' => 'users/registrations#borrower'
get 'users' => "users/registrations#new"
get 'users/password' => 'users/passwords#new'
put 'users/passwords/change' => 'users/passwords#update_password'
put 'users/passwords/change' => 'users/passwords#update_expired_password'
end
resources :passwords, only: [:new, :edit, :submitted, :create, :update]
get 'login', to: 'sessions#new'
get 'sessions/create', to: 'sessions#new'
post 'sessions/create', to: 'sessions#create'
delete 'signout', to: 'sessions#destroy'
get 'password-submitted' => 'passwords#submitted'
end