ruby on rails - NoMethodError undefined method `save' for nil:NilClass -
what need fix this? new ruby on rails.
error when rspec ran
1) remember token should have nonblank remember token failure/error: before { @user.save } nomethoderror: undefined method `save' nil:nilclass # ./spec/models/user_spec.rb:125:in `block (2 levels) in <top (required)>' user_spec.rb
require 'spec_helper' describe user before @user = user.new(name: "example user", email: "user@example.com", password: "foobar", password_confirmation: "foobar") end . . . { should respond_to(:remember_token) } . . . describe "with password that's short" before { @user.password = @user.password_confirmation = "a" * 5 } { should be_invalid } end describe "return value of authenticate method" before { @user.save } let(:found_user) { user.find_by_email(@user.email) } describe "with valid password" { should == found_user.authenticate(@user.password) } end describe "with invalid password" let(:user_for_invalid_password) { found_user.authenticate("invalid") } { should_not == user_for_invalid_password } specify { user_for_invalid_password.should be_false } end end end describe "remember token" before { @user.save } "should have nonblank remember token" subject.remember_token.should_not be_blank end end user.rb
class user < activerecord::base attr_accessible :name, :email, :password, :password_confirmation has_secure_password before_save { |user| user.email = email.downcase } before_save :create_remember_token validates :name, presence: true, length: { maximum: 50 } valid_email_regex = /\a[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i validates :email, presence: true, format: { with: valid_email_regex }, uniqueness: { case_sensitive: false } validates :password, length: { minimum: 6 } validates :password_confirmation, presence: true private def create_remember_token self.remember_token = securerandom.urlsafe_base64 end end
it looks block of code
describe "remember token" is outside block
describe user ... end if move inside block, have before action fire creates @user object (which save in own before block)
Comments
Post a Comment