簡體   English   中英

Rails設計幫助路由錯誤沒有路由匹配“/ sessions / user”

[英]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.0Rails 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM