В настоящее время ClientSideValidations отфильтровывает любые условные валидаторы.Devise устанавливает некоторые из валидаторов как условные: https://github.com/plataformatec/devise/blob/master/lib/devise/models/validatable.rb#L24-32
Причина, по которой я это сделал, заключается в том, что у клиента нет хорошего способа определить истинное значение этого условного выражения.Я мог бы сделать это во время генерации формы, но что, если это условие основано на значении, которое можно изменить в форме?Поэтому я решил отфильтровать их и позволить вещам вернуться к серверу.
Это была идея, но она явно накладывала несправедливые ограничения на некоторые вещи.Это самое очевидное (и популярное).
Поэтому я планирую выпустить новую версию очень скоро, которая позволит вам явно переопределить условные фильтры.Это будет работать так:
<%= f.text_field :password, :validate => { :presence => true, :confirmation => true } %>
или
<%= f.text_field :password, :validate => true %>
В первом случае вы можете выбрать, какие валидаторы отключить фильтр.Во втором случае он отключит фильтр для всех валидаторов этого атрибута.Условие будет оценено во время создания формы, и, если она пройдет, она добавит валидатор в элемент ввода для использования на клиенте.