![](/img/trans.png)
[英]Rails Devise routing error - “No route matches” (controller=>“devise/sessions”)
[英]Rails devise help routing error No route matches “/sessions/user”
當我在我的頁面上登錄時,我自動轉到路線: http:// localhost:3000 / sessions / user
我收到這個錯誤:
Routing Error
No route matches "/sessions/user"
我在users文件夾中創建了一個名為sessions_controller.rb的控制器,它是:
class Users::SessionsController < Devise::SessionsController
def new
redirect_to root_url, :notice => "You have been logged out."
end
def create
user = User.authenticate(params[:login], params[:encrypted_password])
if user
session[:user_id] = user.id
redirect_to root_url, :notice => "Logged in successfully."
else
flash.now[:alert] = "Invalid login or password."
render :action => 'new'
end
end
def destroy
session[:user_id] = nil
redirect_to root_url, :notice => "You have been logged out."
end
end
我的路線檔案:
Densidste::Application.routes.draw do
match 'user/edit' => 'users#edit', :as => :edit_current_user
devise_for :users, :controllers => { :sessions => "users/sessions" } do
get "login", :to => "devise/sessions#new"
get "opret", :to => 'users/users#new'
get "logud", :to => 'users/users#destroy'
end
resources :sessions
resources :users
devise_for :users, :controllers => { :sessions => "users/sessions" }
resources :aktivs
resources :taggingposts
resources :tags
resources :kommentares
resources :posts
end
(老問題,但我在設置Devise時遇到了同樣的問題,所以希望這有助於其他人)
刪除resources :sessions
路由文件中的resources :sessions
應該可以解決問題。
對於那些使用Devise 2.0
和Rails 3.2.1
遇到此問題的人,並檢查了@Micah Alcorn所做的所有觀察但仍然面臨問題 - 重新啟動您的Web服務器 。 為我工作。
您沒有定義root_url
。 它仍然指向靜態public / index.html。 (Ryan Bigg編輯)
devise_for :users
說兩次。
resources :users
除非您有一個RESTful控制器處理devise之外的destroy和index操作,否則resources :users
是不必要的。
事實上,你是否也有第一個編輯動作的“用戶”控制器? 這應該是在自定義Users::RegistrationsController < Devise::RegistrationsController
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.