Quiero usar Devise con dos espacios de nombres: un espacio de nombres API y el espacio de nombres predeterminado, pero los dos parecen estar en conflicto cuando un usuario intenta iniciar sesión. Significado, cualquiera que sea El espacio de nombre que hace referencia a Devise primero termina en siendo el lugar de redirección final. Por ejemplo: si intento crear una nueva sesión en el espacio de nombres predeterminado, fallará en la ruta de la sesión de ese usuario, y luego intentaré crear la sesión en la ruta de las sesiones API/v1.Uso de Devise con varios espacios de nombres para el mismo Modelo
¿Cómo hago que los dos actúen de forma independiente?
Ambos hacen referencia a un objeto Usuario. El controlador user_sessions para el espacio de nombre predeterminado es 'user_sessions'. El user_sessions controlador para el API/V1 espacio de nombres es '/ 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
----- DEFAULT NAMESPACE USER_SESSIONS_CONTROLLER -----
class UserSessionsController < Devise::SessionsController
....
end
----
API NAMESPACE USER_SESSIONS_CONTROLLER - --- (esto va a mi controlador de base de encargo Diseñar marcado abajo)
class Api::V1::UserSessionsController < Api::V1::DeviseBaseController
...
end
---- API de espacio de nombres personalizado DEVISE base de control ----
class Api::V1::DeviseBaseController < Devise::SessionsController
respond_to :json
end
Si miras el código que publiqué, hice exactamente eso. ¿En qué se diferencia la solución propuesta? – beeudoublez