Chcę użyć narzędzia Devise z dwoma przestrzeniami nazw: przestrzeni nazw interfejsu API oraz domyślnej przestrzeni nazw, , ale wydaje się, że oba te elementy są w konflikcie, gdy użytkownik próbuje się zalogować. Znaczenie, w zależności od tego, przestrzeń nazw, która odwołuje się do Devise, ostatecznie kończy się jako ostateczne miejsce przekierowania. Przykład: jeśli spróbuję utworzyć nową sesję w domyślnym obszarze nazw, zakończy się niepowodzeniem na ścieżce sesji użytkownika, , a następnie spróbuje utworzyć sesję w ścieżce sesji API/v1.Korzystanie z narzędzia Devise z wieloma przestrzeniami nazw dla tego samego modelu
Jak sprawić, by te dwie osoby działały niezależnie?
Obaj odnoszą się do obiektu użytkownika. Kontrolerem user_sessions dla domyślnego obszaru nazw jest "user_sessions". User_sessions kontroler dla API/nazw V1 jest '/ api/v1/user_sessions'
---- ROUTES.RB -------
MySite::Application.routes.draw do
namespace :api do
namespace :v1 do
devise_for :users,:controllers => { :sessions => "api/v1/
user_sessions",:registrations=>"users" }
......
end
end
devise_for :users,:controllers => { :sessions =>"user_sessions",:registrations=>"users" } do
post 'users/sign_in' => 'user_sessions#create', :as => :user_session
get 'users/sign_in' => 'user_sessions#new', :as => :new_user_session
get 'users/sign_up' => 'user_sessions#new', :as => :new_user_session
match 'users/sign_out' => 'user_sessions#destroy', :as => :destroy_user_session
<.....>
end
----- domyślnej przestrzeni nazw USER_SESSIONS_CONTROLLER -----
class UserSessionsController < Devise::SessionsController
....
end
----
API NAMESPACE USER_SESSIONS_CONTROLLER - --- (to idzie do mojego kontrolera zwyczaj opracować bazowej oznaczonego poniżej)
class Api::V1::UserSessionsController < Api::V1::DeviseBaseController
...
end
---- API namespace cUSTOM opracować centralnej sterownika ----
class Api::V1::DeviseBaseController < Devise::SessionsController
respond_to :json
end
Jeśli spojrzysz na kod, który napisałem, zrobiłem dokładnie to. W jaki sposób proponowane przez ciebie rozwiązanie jest inne? – beeudoublez