1

Rails 3.2.12 と Devise 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

/users/ 部分の入力をスキップできるようにするために、他に何かしなければならないことはありますか?

ありがとうございました!

4

2 に答える 2

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

この StackOverflow 投稿での Devise パスのカスタマイズに関する良い情報:)


ライブ アプリの 1 つで動作するライブ コードを次に示します。

  #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
于 2013-10-08T09:36:33.697 に答える
0
devise_scope :user do
  get "/login" => "devise/sessions#new"
end

詳しくはこちらをご覧ください

于 2013-10-08T09:33:43.813 に答える