Использование Devise с несколькими пространствами имен для одной и той же модели

Я хочу использовать Devise с двумя пространствами имен :пространством имен API и пространством имен по умолчанию, но они кажутся конфликтующими, когда пользователь пытается войти в систему. Это означает, что любое пространство имен, которое сначала ссылается на Devise, заканчивается являющийся конечным местом перенаправления. Пример :Если я попытаюсь создать новый сеанс в пространстве имен по умолчанию он не будет работать на этом пути сеанса пользователя, а затем попытайтесь создать сеанс по пути сеансов API/v1.

Как заставить их действовать независимо?

Они оба ссылаются на объект User. Контроллер сеансов пользователя _для пространства имен по умолчанию «пользовательские сеансы _». Сеансы пользователя _контроллер для пространства имен API/V1: «/api/v1/user _сеансы»

    ---- 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

-----ПРОСТРАНСТВО ИМЕН ПО УМОЛЧАНИЮ ПОЛЬЗОВАТЕЛЬ _СЕССИИ _КОНТРОЛЛЕР-----

class UserSessionsController < Devise::SessionsController
....
end
---- 

ПРОСТРАНСТВО ИМЕН API ПОЛЬЗОВАТЕЛЬ _СЕССИИ _КОНТРОЛЛЕР----(] это относится к моему пользовательскому базовому контроллеру Devise, отмеченному ниже)

class Api::V1::UserSessionsController < Api::V1::DeviseBaseController
...
end

----API NAMESPACE CUSTOM DEVISE BASE CONTROLLER----

class Api::V1::DeviseBaseController < Devise::SessionsController
       respond_to :json
end
7
задан beeudoublez 23 April 2012 в 17:21
поделиться