导轨设计帮助布线错误 没有匹配"/sessions/user"的路由



当我登录我的页面时,我会自动转到路线:http://localhost:3000/sessions/user

我收到此错误:

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

(老问题,但我在设置 Devise 时遇到了同样的问题,所以希望这对其他人有所帮助)

从路由文件中删除resources :sessions应该可以解决问题。

对于那些

Devise 2.0Rails 3.2.1上遇到此问题并检查@Micah Alcorn所做的所有观察但仍面临问题的人 - 重新启动您的Web服务器。为我工作。

您没有定义root_url。它仍然指向静态 public/index.html。(由Ryan Bigg编辑)

devise_for :users被陈述了两次。

resources :users是不必要的,除非您有一个 RESTful 控制器处理 de设计之外的销毁和索引操作。

事实上,您是否也有用于第一个编辑操作的"用户"控制器?这可能应该在自定义Users::RegistrationsController < Devise::RegistrationsController中。

相关内容

  • 没有找到相关文章

最新更新