Осмотрите параметры, фактически полученные вашим действием (например, проверьте development.log
) и опубликуйте информацию о том, что на самом деле отправлено на ваш контроллер в хеше params
.
Проверка подлинности в модели происходит на стороне сервера после того, как браузер передал данные формы, прежде чем он будет сохранен/обновлен в базе данных. Таким образом, если один и тот же ввод из двух разных браузеров дает разные результаты проверки, то он, вероятно, изменяется браузером до того, как он будет принят действием контроллера.
Чтобы сказать это по-другому: это не проверка, которая пропущена, это входные данные, которые изменяются, по крайней мере, наиболее вероятно. Осмотрите, что на самом деле делает его на ваш params
хэш, и вы будете на полпути домой.
Вы правы, это должно быть поведение по умолчанию Chrome. Я пишу '2a' и выхожу за пределы ввода, и он автоматически переходит на' 2', прежде чем отправить форму. – josebailo
Возможно ли, что Rails автоматически генерирует некоторые метаданные, которые Chrome реагирует на это поле (? Из-за вашей проверки?), Которое подается в представление, заставляя его форматировать его до его отправки? Просто догадка, но было бы здорово, если бы это было так. – jefflunt