我正在浏览迈克尔·哈特尔的导轨教程,一切都很好,但我似乎已经搞砸了一些东西,我无法弄清楚在哪里(部分归功于我非常邋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
将是开始修复它的正确位置。
答案 0 :(得分:1)
这是Cloud9的在线IDE的一个问题。无论出于何种原因,它显示的是sessions_controller.rb文件中包含的所有内容,当它确实存在时(再次,由于我不明白的原因)它是空白的。关闭所有计算机上的工作区并重新打开它会将文件显示为空白,并且复制+粘贴原始帖子中的控制器代码可以解决问题。