我正在使用Code School的Rspec课程进行测试,并将ruby 2.2.1,rails 4.2.5.1和rspec 3.4.4安装到我的Ubuntu系统中.正如我输入的第一个视频描述
rspec --init
Run Code Online (Sandbox Code Playgroud)
在我的项目文件夹中,它创建了一个spec文件夹,在其中我创建了一个名为lib的新目录.在那里我放置了两个.rb文件:
touch spec/lib/zombie_spec.rb
touch spec/lib/zombie.rb
Run Code Online (Sandbox Code Playgroud)
spec_helper.rb通常在spec文件夹中创建.如果我跑:
rspec spec/lib/zombie_spec.rb
Run Code Online (Sandbox Code Playgroud)
对于zombie_spec.rb中的以下代码:
require "spec_helper"
describe "Zombie" do
it "is named Ash"
end
Run Code Online (Sandbox Code Playgroud)
一切都按预期运行并显示在视频中.但如果我采取下一步并添加
require "zombie"
Run Code Online (Sandbox Code Playgroud)
在第一次需要之后到zombie_spec.rb文件,我收到错误:
cannot load such file -- zombie (LoadError)
Run Code Online (Sandbox Code Playgroud)
zombie.rb看起来完全像这样:
class Zombie
end
Run Code Online (Sandbox Code Playgroud) 我正在关注Michael Hartl的Ruby on Rails教程,在那里我达到了第8章.但是经过验证的?方法总是返回false.Cookie for:remember_token已正确保存.但是当我比较数据库消化时,remember_digest通过BCrypt::Password.new(remember_digest).is_password?(remember_token)它将总是返回false.我正在使用Rails 4.2.5.1.这是我的代码:
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)
redirect_to user
else
flash.now[:danger] = 'Invalid email/password combination'
render 'new'
end
end
def destroy
log_out if logged_in?
redirect_to root_url
end
end
models/user.rb
class User < ActiveRecord::Base
attr_accessor :remember_token
before_save { email.downcase! }
validates :name, presence: true, length: { maximum: 50 }
validates :email, presence: …Run Code Online (Sandbox Code Playgroud)