Rails教程:无法自动加载常量SessionsController

时间:2016-01-13 18:34:20

标签: ruby-on-rails ruby

我正在浏览迈克尔·哈特尔的导轨教程,一切都很好,但我似乎已经搞砸了一些东西,我无法弄清楚在哪里(部分归功于我非常邋ra的git提交)

  

LoadError:无法自动加载常量SessionsController,预期/home/ubuntu/workspace/sample_app/app/controllers/sessions_controller.rb来定义它

~/workspace/sample_app/app/controllers/sessions_controller.rb内部:

class SessionsController < ApplicationController
  def new
  end

  def create
    user = User.find_by(email: params[:session][:email].downcase)
    if user && user.authenticate(params[:session][:password])
      log_in user
      params[:session][:remember_me] == '1' ? remember(user) : forget(user)
      flash[:success] = "Successfully logged in!"
      redirect_back_or(user)
    else
      flash.now[:danger] = "Invalid email or password"
      render 'new'
    end
  end

  def destroy
    logout if logged_in?
    redirect_to login_path
  end
end

有问题的测试是失败的:

require 'test_helper'

class SessionsControllerTest < ActionController::TestCase
  test "should get new" do
    get :new
    assert_response :success
  end    
end

我正在挖掘的所有内容都告诉我这是一个区分大小写的问题,但蛇案和骆驼案对我来说是正确的。它早些时候工作正常,但现在不行,而且我真的不确定我能在哪里出错。

在引用SessionsController文件时,依赖sessions_helper.rb的其他集成测试也会失败。但是我觉得失败了:new将是开始修复它的正确位置。

1 个答案:

答案 0 :(得分:1)

这是Cloud9的在线IDE的一个问题。无论出于何种原因,它显示的是sessions_controller.rb文件中包含的所有内容,当它确实存在时(再次,由于我不明白的原因)它是空白的。关闭所有计算机上的工作区并重新打开它会将文件显示为空白,并且复制+粘贴原始帖子中的控制器代码可以解决问题。