#ruby-on-rails #factory-bot
#ruby-on-rails #завод-бот
Вопрос:
Мой User.rb имеет:
attr_accessor :password, :password_confirmation
attr_accessible :password, :password_confirmation
Моя factory_girl для пользователя:
Factory.define :user do |u|
u.password "my_password"
u.password_confirmation "my_password"
end
Мой User.rb устанавливает поле encrypted_password при сохранении объекта.
Кажется, что значения, которые я установил на своей фабрике (пароли), вообще не устанавливаются.
В моих тестах я должен делать:
it "should ...." do
user = Factory(:user)
user.password = "abc123"
end
Почему это должно быть так?
У меня есть атрибут password как средство доступа, так и доступный.
Что-то конфликтует?
Комментарии:
1. Используете ли вы какой-либо драгоценный камень аутентификации или код?
2. теперь нет ничего, что могло бы противоречить… (это мой собственный обычай)
Ответ №1:
Я полагаю, проблема с вышесказанным заключается в том, что эти attr_accessor
поля не сохраняются в базе данных, поэтому они «теряются» при объявлении в factories.rb
. Решение для этого — установить их явно при создании нового объекта из factory:
user = Factory(:user, :password => '123')
Также смотрите: