Я приступаю к изучению валидаторов в рельсах и столкнулся с следующей проблемой.Отображение ошибок проверки правильности рельсов рядом с соответствующим полем
У меня есть ряд полей формы в приложении, над которым я работаю. Я заметил, что если я использую валидатор, родной для рельсов, например validates :pin_number, length: { is: 6 }
, он отправляется и помещает небольшое небольшое сообщение рядом с полем формы: <span class="error">is the wrong length (should be 6 characters)</span>
Awesome!
Однако, когда я создал пользовательский валидатор ниже, чтобы проверить значение: pin_number, мое сообщение об ошибке, хотя оно и появилось вверху, не появилось рядом с полем, имеющим нарушение.
#from my controller hp_id.rb
validates :pin_number, pin: true
#from my custom validator in app/validators/pin_validator.rb
class PinValidator < ActiveModel::EachValidator
def validate_each (record, attribute, value)
if value > 9999
record.errors[attribute] << (options[:message] || "validator working")
end
end
end
Я огляделся в Интернете и, в то время как я нашел предложения для редактирования поля ввода для отображения ошибок проверки, такой подход казался неаккуратным, как некоторые рельсы валидаторов уже есть эта функциональность без каких-либо изменений в представление.
Мой вопрос: Как использовать существующую инфраструктуру для визуализации сообщения <span class="error">
с помощью собственного пользовательского валидатора?
Любое понимание оценено!
Спасибо за ответ. В конечном счете, мое намерение состоит в том, чтобы добавить настраиваемое сообщение к настраиваемому валидатору, а не к существующему. Тест больше, чем меньше, сам по себе, просто удобный способ увидеть, работает ли он. – neanderslob