用户的未定义方法'current_sign_in_ip'(NoMethodError)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户的未定义方法'current_sign_in_ip'(NoMethodError)相关的知识,希望对你有一定的参考价值。
有兴趣了解BDD,我正在关注Setting up a BDD stack on a rails 5 application中提到的免费Rails测试手册,并且几乎完成了第5章Bootstrapping用户认证系统。
本书第39页的最后一行是
此时一切都应该是绿色的
但是,当我运行bundle exec cucumber
时,我有两个失败的方案(用户登录,用户注销)。黄瓜产量摘录如下:
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'
应用程序/模型/ user.rb
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable
end
分贝/迁移/ 20181221105428_add_trackable_to_devise.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
完整的代码和pdf书籍可在github repo上找到。
我真的很感激任何帮助。
答案
只需运行rake db:test:准备在测试环境中执行上次迁移
以上是关于用户的未定义方法'current_sign_in_ip'(NoMethodError)的主要内容,如果未能解决你的问题,请参考以下文章
部署到Heroku:NoMethodError:nil:NilClass的未定义方法'+'
NoMethodError(JsonWebToken的未定义方法`encode':模块):
安装的未定义方法`devise'(调用'Install.connection'建立连接):Class
ActiveRecord NoMethodError:nil的未定义方法`association':NilClass