2016-09-02 8 views
3

Ich arbeite meinen Weg durch die Schienen-Tutorial und ich versuche, test a valid user login. Allerdings bekomme ich NoMethodError: undefined Methode` Digest', wenn ich den Test ausführen. Ich habe alles untersucht und ich verstehe nicht, warum ich diesen Fehler bekomme. Ich habe sogar versucht, den Tutorial-Code zu kopieren/einzufügen, um sicherzustellen, dass es sich nicht um einen Schreibfehler oder etwas anderes handelt, das ich beim Tippen übersehen habe.NoMethodError: undefined Methode `Digest '

Hier ist mein Benutzermodell:

class User < ApplicationRecord 
    before_save { email.downcase! } 
    validates :name, presence: true, length: { maximum: 50 } 
    VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i 
    validates :email, presence: true, length: { maximum: 255 }, 
        format: { with: VALID_EMAIL_REGEX }, 
        uniqueness: { case_sensitive: false } 
    has_secure_password 
    validates :password, presence: true, length: { minimum: 6 } 

    def User.digest(string) 
     cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST : 
                BCrypt::Engine.cost 
     BCrypt::Password.create(string, cost: cost) 
    end 
end 

und meine Aufnahme:

test_user: 
    name: Test User 
    email: [email protected] 
    password_digest: <%= User.digest('password') %> 

und mein Test:

test "login with valid information" do 
    get login_path 
    post login_path, params: { session: { email: @user.email, 
             password: 'password' } } 
    assert_redirected_to @user 
    follow_redirect! 
    assert_template 'users/show' 
    assert_select "a[href=?]", login_path, count: 0 
    assert_select "a[href=?]", logout_path 
    assert_select "a[href=?]", user_path(@user) 
end 

ich ziemlich ratlos bin so eine Beratung sehr geschätzt wird.

Stapelüberwachung:

NoMethodError: undefined method `digest' for #<User:0x000000069b8c18> 

Meinten Sie? Digest von /usr/local/rvm/gems/ruby-2.3.0/gems/activemodel-5.0.0.1/lib/active_model/attribute_methods.rb:433:in method_missing' from (irb):8 from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/commands/console.rb:65:in Start ' von/usr/local/rvm/Gems /ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/commands/console_helper.rb:9:in start' from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands_tasks.rb:78:in Konsole ' from /usr/local/rvm/gems/ruby-2.3.0/gems/ railties-5.0.0.1/lib/rails/commands/commands_tasks.rb: 49: in run_command!' from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/commands.rb:18:in ' von /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/ dependencies.rb: 293: in require' from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in block in erfordern ' von /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in load_dependency' from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in erfordern ' von/home/ubuntu/workspace/bin/rails: 9: in <top (required)>' from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in laden' von /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in block in load' from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in load_dependency ' von/usr/local/rvm/edelsteine ​​/ ruby-2.3.0/edelsteine ​​/ activesupport-5.0.0.1/lib/active_support/dependencies.rb: 287: in load' from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/commands/rails.rb:6:in rufen ' von /usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7 .2/lib/spring/command_wrapper.rb: 38: in call' from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application.rb:191:in blockieren in serve ' von /usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application. rb: 161: in fork' from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application.rb:161:in servieren ' von /usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application.rb:131:in block in run' from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application.rb:125:in loop' von/usr/local/rvm/edelsteine ​​/ ruby-2.3.0/edelsteine ​​/ feder-1.7.2/lib/feder/applikation.rb: 125: in run' from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application/boot.rb:19:in ' von /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require' from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require‘

+0

Ist die Digest-Methode zugänglich in Schienen Konsole – raj

+0

@rajeevmaash Nr ich die gleichen Fehler wie zuvor beim Versuch, das Verfahren in der Konsole zu nennen. –

+0

können Sie Stack-Trace hinzufügen – raj

Antwort

Verwandte Themen