Я получаю эту ошибку, когда я бег моего user_controller_spec.rbFactory девушка: пользователь отсутствии проверка, несмотря на атрибуты, являющихся действительный (с использованием действует как taggable гем)
Failure/Error: login_member
ActiveRecord::RecordInvalid:
Validation failed: User tag list You need to provide at least 5 interests
Следующий код вызывает мои тесты на провал. Более конкретно линия "login_member"
В user_controller_spec.rb
before(:example) do
login_member
@user = @member.user
@another_user = create(:another_user)
end
Вот моя фабрика создана. Вы можете увидеть, пользователь получает создан с членом
Factories.rb
factory :member do
email { Faker::Internet.email }
password 'fidelio'
password_confirmation 'fidelio'
confirmed_at Time.now
association :user
end
factory :user do
first_name "Simon"
last_name "Walsh"
country "GB"
tag_list = "Sarcoidosis, Clinical trials, Emphysema, Bronchitis, Idiopathic pulmonary fibrosis"
end
И следующих вспомогательных журналов в элементе
В spec_helpers.rb
def login_member
@request.env["devise.mapping"] = Devise.mappings[:member]
@member = create (:member)
sign_in @member
end
Вот мой код проверки в моем классе пользователя. Я указал его только на обновление.
В user.rb
validate :check_minimum_tags, on: :update
def check_minimum_tags
errors.add(:tag_list, 'You need to provide at least 5 interests') unless tag_list.count > 4
end
Я неопределенный
Почему это было бы повысить ошибку, чтобы начать с, как его созданием, связанный пользователя не обновляя его
Почему его все равно поднимают .... вы можете видеть, что я указал 5 интересов в «tag_list» (используя действия с драгоценным камнем)
Я также попытался использовать массив интересов вместо строки