Я имею в виду, что не надо использовать валидации ar, а провалидировать параметры в другом месте, тогда у тебя не будет костылей типа on: :create. Вот захочет пользователь сменить пароль, как будешь разруливать? А для консистентности данных есть констрейнты в бд