Ruby on rails 未定义的方法';当前登录ip';适用于用户(NoMethodError)
对学习BDD感兴趣,我正在学习中提到的免费Rails测试手册,并且几乎完成了第5章“引导用户身份验证系统” 这本书第39页的最后一行是 在这一点上,一切都应该是绿色的 但是,当我运行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
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中运行迁移?没有,谢谢您的帮助,它解决了这个特定问题。