В приложении rails я переопределяю field_error_proc
, чтобы разрешить отображение встроенных ошибок, например так:
![enter image description here](https://i.stack.imgur.com/DjmdN.png)
и код для этоговыглядит следующим образом
ActionView::Base.field_error_proc = proc { |html_tag, instance|
html = %(<div class="field_with_errors">#{html_tag}</div>).html_safe
form_fields = %w[textarea input select]
elements = Nokogiri::HTML::DocumentFragment.parse(html_tag).css 'label, ' + form_fields.join(', ')
elements.each do |e|
next unless form_fields.include?(e.node_name)
errors = [instance.error_message].flatten.uniq.collect { |error| "#{instance.method_name.humanize} #{error}" }
html = %(<div class="field_with_errors">#{html_tag}</div><small class="form-text error-text"> #{errors.join(', ')}</small>).html_safe
end
html
}
Это нормально работает для обычных входов, так как они обернуты нормально.
Проблема возникает, когда вход обернут вокруг чего-то, что я хотел бы field_with_errors
div, чтобы обернуть его как выпадающий список select2 или пользовательскую группу ввода, например, так:
<div class="split-daterange-picker form-control daterange-picker" id="">
<input class="start-date" placeholder="Requested Dates" type="text" name="housing_lead[start_date]">
<span class="separator"></span>
<input class="end-date" placeholder="Requested Dates" type="text" name="housing_lead[end_date]">
</div>
Я использую 2 ввода, которые по существу действуют как одно поле формы, например: ![enter image description here](https://i.stack.imgur.com/YHJTb.png)
Но проблема в том, что когда входы заключены в field_with_errors
div, это выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/mKdLv.png)
ЧтоПо сути, я бы хотел сделать обтекание split-daterange-picker
в field_with_errors
div, чтобы я мог соответствующим образом стилизовать и добавить сообщения об ошибках после этого.Как я могу это сделать