2012-01-07 26 views
0

通過對user_auth使用devise,它設置了一些默認路由(例如/ user/edit和/ user/sign_in)。在routes.rb我有實施:devise_for的路線除外

devise_scope :user do 
    get 'signin' => 'devise/sessions#new' 
    etc. 
end 

問題是,/ signin和/ user/sign_in工作鏈接到登錄頁面。我想如何讓/ user/sign_in鏈接處於非活動狀態,這意味着在導航到該頁面時會出現404錯誤。

我耙路線是:

new_user_session GET /users/sign_in(.:format)   {:action=>"new", :controller=>"devise/sessions"} 
     user_session POST /users/sign_in(.:format)   {:action=>"create", :controller=>"devise/sessions"} 
destroy_user_session DELETE /users/sign_out(.:format)   {:action=>"destroy", :controller=>"devise/sessions"} 
     user_password POST /users/password(.:format)   {:action=>"create", :controller=>"devise/passwords"} 
    new_user_password GET /users/password/new(.:format)  {:action=>"new", :controller=>"devise/passwords"} 
    edit_user_password GET /users/password/edit(.:format)  {:action=>"edit", :controller=>"devise/passwords"} 
        PUT /users/password(.:format)   {:action=>"update", :controller=>"devise/passwords"} 
cancel_user_registration GET /users/cancel(.:format)    {:action=>"cancel", :controller=>"registrations"} 
    user_registration POST /users(.:format)     {:action=>"create", :controller=>"registrations"} 
new_user_registration GET /users/sign_up(.:format)   {:action=>"new", :controller=>"registrations"} 
edit_user_registration GET /users/edit(.:format)    {:action=>"edit", :controller=>"registrations"} 
        PUT /users(.:format)     {:action=>"update", :controller=>"registrations"} 
        DELETE /users(.:format)     {:action=>"destroy", :controller=>"registrations"} 
       signin GET /signin(.:format)     {:action=>"new", :controller=>"devise/sessions"} 
      signout GET /signout(.:format)     {:action=>"destroy", :controller=>"devise/sessions"} 
       signup GET /signup(.:format)     {:action=>"new", :controller=>"devise/registrations"} 
      command GET /command(.:format)     {:action=>"edit", :controller=>"devise/registrations"} 

回答

1

使用devise_for更改默認的URL路徑和名稱

devise_for :users, :path => '', :path_names => { :sign_in => 'signin', :sign_out => 'signout', :sign_up => 'signup' } 

我會建議離開的路徑名稱作爲sign_in,SIGN_OUT和sign_up自signin看起來像胡言亂語。

此外,有選擇地編輯這些默認值可能會使您的路線長期更加混亂。所以,除非有很好的理由來覆蓋默認設置,否則應該按照設計建議進行。