2011-05-10 80 views
4

當我登錄我的網頁上我自動去的路線:http://localhost:3000/sessions/userRails的設計幫助路由錯誤沒有路由匹配「/會話/用戶」

而且我得到這個錯誤:

Routing Error 

No route matches "/sessions/user" 

我有在創建一個用戶名爲控制器這裏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 
+0

你期望定義那條路線? – 2011-05-10 21:36:16

+0

我期待着我的會話控制器工作,並重定向到根網址,通知「成功地嵌入」 – Hans 2011-05-10 21:43:46

回答

0

您沒有定義root_url。它仍然指向靜態public/index.html。 (由Ryan Bigg編輯)

devise_for :users被陳述了兩次。

resources :users是不必要的,除非您有一個REST控制器處理devise之外的銷燬和索引操作。

事實上,您是否有第一個編輯操作的「用戶」控制器?那應該是在自定義。

2

對於那些誰遇到此問題與Devise 2.0Rails 3.2.1並檢查通過@Micah奧爾康提出的所有意見,但仍然面臨的問題 - 重新啓動您的Web服務器。爲我工作。

7

(老問題,但設置最多時制定,所以希望這可以幫助別人我遇到了同樣的問題)

從路由文件中刪除resources :sessions應該解決的問題。

相關問題