【问题标题】:uninitialized constant SessionsController ROR rails 4未初始化的常量 SessionsController ROR rails 4
【发布时间】:2015-07-08 17:30:34
【问题描述】:

您好,我是 Ruby on rails 的初学者。我正在尝试一些实验。我正在尝试实现用户登录。我没有使用任何宝石。我尝试了以下方式:

get "log_out" => "sessions#destroy", :as => "log_out"
  get "log_in" => "sessions#new", :as => "log_in"
  get "sign_up" => "users#new", :as => "sign_up"
  root :to => "users#new"
  resources :users
  resources :sessions

class SessionController < ApplicationController
  def new
  end

   def create
    user = User.authenticate(params[:email], params[:password])
    if user
      session[:user_id] = user.id
      redirect_to root_url, :notice => "Logged in!"
    else
      flash.now.alert = "Invalid email or password"
      render "new"
    end
  end

   def destroy
    session[:user_id] = nil
    redirect_to root_url, :notice => "Logged out!"
  end

end

当我尝试点击http://localhost:3000/log_in时它显示了

uninitialized constant SessionsController
routing error

我做错了吗?需要一些帮助。谢谢。

【问题讨论】:

    标签: authentication ruby-on-rails-4 routes


    【解决方案1】:

    你有SessionController 而不是SessionsController。将其更改为 SessionsController 或编辑您的 routes,如下所示。

    get "log_out" => "session#destroy", :as => "log_out"
    get "log_in" => "session#new", :as => "log_in"
    get "sign_up" => "users#new", :as => "sign_up"
    root :to => "users#new"
    resources :users
    resource :session
    

    我建议将SessionController 更改为SessionsController

    IMP 注意:

    在将SessionController 更改为SessionsController 时,不要忘记将文件名 更改为sessions_controller.rb

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 2011-12-17
      • 1970-01-01
      相关资源
      最近更新 更多