2013-10-08 60 views
1

我運行的Rails 3.2.12和設計3.1自定義路由鏈接,我在routes.rb中這樣的:設計工作不

devise_for :users do 
    get '/login' => 'devise/sessions#new', as: :login 
    get '/logout' => 'devise/sessions#destroy', as: :logout 
end 

然而,當我打

127.0.0.1:3000/login 

我得到

No route matches [GET] "/login" 

什麼工作是

127.0.0.1:3000/users/login 

還有什麼我必須這樣做,我可以跳過鍵入/用戶/部分?

謝謝!

回答

0
devise_scope :user do 
    get "/login" => "devise/sessions#new" 
end 

更多細節

1
devise_for :users, :path => '', :path_names => { :sign_in => 'login'} 

有關自定義設計的路徑良好的信息上this StackOverflow post :)


下面是這適用於我們的生活應用程序的一個部分活代碼見this

#User Management (Devise) 
    devise_for :users, :path => '', :controllers => {:sessions => 'sessions', :registrations => 'registrations'}, :path_names => { :sign_in => 'login', :password => 'forgot', :confirmation => 'confirm', :unlock => 'unblock', :registration => 'register', :sign_up => 'new', :sign_out => 'logout'} 
    as :user do 
    get 'register', :to => 'devise/registrations#new' 
    delete 'logout', :to => 'sessions#destroy' 
    end