Я видел кучу сообщений о том, как переименовать уже объявленные маршруты в devise.Я хочу расширить разработку, чтобы иметь свою собственную проверку маршрута и сессию ожидания.Я реализую простую проверку js каждую 1 минуту, когда я хочу нажать 'check_active' в контроллере сессий devise.Я пробовал это, но не повезло:
devise_scope :sessions do
get 'check_active'
end
Есть ли способ развернуть разработать с помощью собственного маршрута (не переименовывать уже существующий)?
ОБНОВЛЕНИЕ -почти там, я сделал это
# already had this in routes
devise_for :users, :controllers =>
{ registrations: 'registrations',
confirmations: 'confirmations',
sessions: 'sessions',
passwords: 'passwords',
omniauth_callbacks: "omniauth_callbacks"}
# added this
devise_scope :sessions do
get '/check_active' => 'sessions#check_active'
end
У меня стрельба JS, у меня он получает '/ check_active', как показывают маршруты рейка:
check_active GET /check_active(.:format)
Но когда он срабатывает,контроллер 404 с
AbstractController :: ActionNotFound (Не удалось найти сопоставление устройства для пути "/check_active".
Это может произойти по двум причинам:
1) You forgot to wrap your route inside the scope block. For example:
devise_scope :user do
get "/some/route" => "some_devise_controller"
end
2) You are testing a Devise controller bypassing the router.
If so, you can explicitly tell Devise which mapping to use:
@request.env["devise.mapping"] = Devise.mappings[:user]
):