Ruby on rails 命名错误:未定义的方法`摘要';

Ruby on rails 命名错误:未定义的方法`摘要';,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在努力学习rails教程,但是,当我运行测试时,我得到了NoMethodError:undefined方法'digest'。我把所有的东西都看了一遍,不明白为什么我会犯这个错误。我甚至还复制/粘贴了教程代码,以确保它不是拼写错误或键入时遗漏的其他内容 以下是我的用户模型: class User < ApplicationRecord before_save { email.downcase! } validates :name, presence: true, length:

我正在努力学习rails教程,但是,当我运行测试时,我得到了NoMethodError:undefined方法'digest'。我把所有的东西都看了一遍,不明白为什么我会犯这个错误。我甚至还复制/粘贴了教程代码,以确保它不是拼写错误或键入时遗漏的其他内容

以下是我的用户模型:

class User < ApplicationRecord
  before_save { email.downcase! }
  validates :name, presence: true, length: { maximum: 50 }
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[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
我被难住了,所以任何建议都很感激

堆栈跟踪:

NoMethodError: undefined method `digest' for #<User:0x000000069b8c18>
Did you mean?  Digest
  from /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'
  from /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 `console'
  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 `<top (required)>'
  from /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 require'
  from /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 `require'
  from /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 `load'
  from /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'
  from /usr/local/rvm/gems/ruby-2.3.0/gems/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 `call'
  from /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 `block in serve'
  from /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 `serve'
  from /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'
  from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application.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 `<top (required)>'
  from /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'
NoMethodError:#
你是说?消化
来自/usr/local/rvm/gems/ruby-2.3.0/gems/activemodel-5.0.0.1/lib/active\u model/attribute\u methods.rb:433:in'method\u missing'
来自(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'
from/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:在“控制台”中
from/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/commands/commands\u tasks.rb:49:in“run\u command!”
来自/usr/local/rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/commands.rb:18:in`'
来自/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active\u support/dependencies.rb:293:in“require”
from/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active\u-support/dependencies.rb:293:in'block-in-require'
来自/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active\u support/dependencies.rb:259:in'load\u dependency'
来自/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active\u support/dependencies.rb:293:in“require”
from/home/ubuntu/workspace/bin/rails:9:in`'
来自/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active\u support/dependencies.rb:287:in'load'
from/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active\u-support/dependencies.rb:287:in'block-in-load'
来自/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active\u support/dependencies.rb:259:in'load\u dependency'
来自/usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active\u 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'call'
from/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'block in service'
from/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'serve'
from/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'
from/usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application.rb:125:in'run'
来自/usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application/boot.rb:19:in`'
from/usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
from/usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'

在rails中是否可以访问摘要方法console@rajeevmaash不。我在控制台中尝试调用该方法时遇到与以前相同的错误。您可以添加堆栈吗trace@rajeevmaashAddyYou正在用户类的实例上调用它。不在课堂上。这就是错误的原因。
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
NoMethodError: undefined method `digest' for #<User:0x000000069b8c18>
Did you mean?  Digest
  from /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'
  from /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 `console'
  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 `<top (required)>'
  from /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 require'
  from /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 `require'
  from /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 `load'
  from /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'
  from /usr/local/rvm/gems/ruby-2.3.0/gems/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 `call'
  from /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 `block in serve'
  from /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 `serve'
  from /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'
  from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application.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 `<top (required)>'
  from /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'