Ruby on rails 未定义的方法';当前登录ip';适用于用户(NoMethodError)

Ruby on rails 未定义的方法';当前登录ip';适用于用户(NoMethodError),ruby-on-rails,devise,cucumber,Ruby On Rails,Devise,Cucumber,对学习BDD感兴趣,我正在学习中提到的免费Rails测试手册,并且几乎完成了第5章“引导用户身份验证系统” 这本书第39页的最后一行是 在这一点上,一切都应该是绿色的 但是,当我运行bundle exec时,有两种失败的情况(用户登录和用户注销)。黄瓜产量摘录如下: When I fill in the login form # features/step_definitions/authentication_steps.rb:29 undefined method `curren

对学习BDD感兴趣,我正在学习中提到的免费Rails测试手册,并且几乎完成了第5章“引导用户身份验证系统”

这本书第39页的最后一行是

在这一点上,一切都应该是绿色的

但是,当我运行
bundle exec
时,有两种失败的情况(用户登录和用户注销)。黄瓜产量摘录如下:

 When I fill in the login form #  
 features/step_definitions/authentication_steps.rb:29  
 undefined method `current_sign_in_ip' for #<User:0x0055a41ac1eeb8> (NoMethodError)

./features/step_definitions/authentication_steps.rb:32:in `"I fill in the login form"'
          features/authentication.feature:15:in `When I fill in the login form'
当我填写登录表单时#
功能/步骤定义/身份验证步骤。rb:29
#的未定义方法“当前#符号#in#ip”(命名错误)
/features/step\u definitions/authentication\u steps.rb:32:in“我填写登录表单”
功能/身份验证。功能:15:in“当我填写登录表时”
app/models/user.rb

class User < ApplicationRecord
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable,
                 :confirmable
end
class用户
db/migrate/20181221105428\u添加可跟踪到\u designe.rb

class AddTrackableToDevise < ActiveRecord::Migration[5.2]
  def change
        add_column :users, :sign_in_count, :integer, default:0, null: false
        add_column :users, :current_sign_in_at, :datetime
        add_column :users, :last_sign_in_at, :datetime
        add_column :users, :current_sign_in_ip, :inet
        add_column :users, :last_sign_in_ip, :inet
  end
end
class AddTrackableToDevice
完整的代码和pdf手册可在上获得


我非常感谢您的帮助。

只要运行rake db:test:prepare以在test env中执行最后一次迁移

您是否运行了
rake db:test:prepare
以在test env中运行迁移?没有,谢谢您的帮助,它解决了这个特定问题。