用户的未定义方法 'current_sign_in_ip' (NoMethodError)
undefined method 'current_sign_in_ip' for User (NoMethodError)
有兴趣了解 BDD,我正在关注 Setting up a BDD stack on a rails 5 application 中提到的免费 Rails 测试手册,并且几乎完成了第 5 章 引导用户身份验证系统.
本书第 39 页的最后一行是
Everything should be green at this point
然而,当我 运行 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'
app/models/user.rb
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable
end
db/migrate/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:prepare 在测试环境中执行最后一次迁移
有兴趣了解 BDD,我正在关注 Setting up a BDD stack on a rails 5 application 中提到的免费 Rails 测试手册,并且几乎完成了第 5 章 引导用户身份验证系统.
本书第 39 页的最后一行是
Everything should be green at this point
然而,当我 运行 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'
app/models/user.rb
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable
end
db/migrate/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:prepare 在测试环境中执行最后一次迁移