我想用設計有兩個命名空間:一個API命名空間,默認的命名空間, 但兩人似乎當用戶試圖登錄到有衝突 含義爲準。參考設計的名稱空間首先結束 是最後的重定向地點。例如:如果我嘗試在默認命名空間下創建新會話 ,它將在該用戶會話路徑 上失敗,然後嘗試在API/v1會話路徑上創建會話。使用設計與多個命名空間爲同一型號
我該如何獨立做這兩件事?
它們都引用一個用戶對象。默認命名空間的user_sessions控制器 是'user_sessions'。所述user_sessions 控制器爲API/V1命名空間是 '/ 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 - ---(這個去下面標明我的自定義設計的基本控制器)
class Api::V1::UserSessionsController < Api::V1::DeviseBaseController
...
end
---- API NAMESPACE CUSTOM制定基本控制器----
class Api::V1::DeviseBaseController < Devise::SessionsController
respond_to :json
end
如果你看看我發佈的代碼,我已經完成了。你提出的解決方案有什麼不同? – beeudoublez 2012-05-04 23:29:02