неопределенный метод 'current_sign_in_ip' для пользователя (NoMethodError) - PullRequest
0 голосов
/ 21 декабря 2018

Заинтересовавшись изучением BDD, я следую бесплатному Руководству по тестированию Rails, упомянутому в Настройка стека BDD в приложении rails 5 , и почти завершил главу 5 Начальная загрузка системы аутентификации пользователя .

Последняя строка на странице 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'

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 .

Я был бы очень признателен за любую помощь.

1 Ответ

0 голосов
/ 21 декабря 2018

Просто запустите rake db: test: подготовьтесь к выполнению последней миграции в test env

...