У меня есть несколько строк в моей модели пользователя, чтобы удалить начальные/конечные пробелы из электронной почты и пароля пользователя. Исходный код выглядел так:
before_save {self.email = email.strip}
before_save {self.password = password.strip}
before_save {self.password_confirmation = password_confirmation.strip}
Это прошло мой тест:
test "password entry should ignore leading/tailing whitespace" do
@user = User.create(name: "M", email: " [email protected]",
password: " password", password_confirmation: " password")
assert @user.authenticate("password")
assert_not @user.authenticate(" password")
end
Теперь я попытался реорганизовать его:
before_save {email.strip!}
before_save {password.strip!}
before_save {password_confirmation.strip!}
Это отлично работает для моего теста электронной почты, но не работает тест пароля выше. Итак, вопрос в том, чем исходная версия на самом деле отличается от переработанного кода?