Rails оборачивает поля ошибками с помощью div - PullRequest
6 голосов
/ 18 марта 2011

Как я могу остановить Rails для изменения моего кода, когда проверка не пройдена.

Каждый раз, когда rails оборачивает мое поле с помощью

<div class='field_with_error'>...</div>

Я могу редактировать fields_with_error class

.fields_with_error{ display: inline }

, который работает, но хакерский

Ответы [ 3 ]

7 голосов
/ 18 марта 2011

Хорошо. Используйте CSS вместо того, чтобы делать это.

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance_tag|
  "<span class='field_error'>#{html_tag}</span>"
end

Который я чувствую более хакерским :)

5 голосов
/ 18 марта 2011

Я использую это в environment.rb.Еще более хакерский; -)

#
# Fix annoying <div class="fieldsWithError"> wrapping after validation
# http://dev.rubyonrails.org/ticket/3587
#

ActionView::Base.field_error_proc = Proc.new { |html_tag, instance| 
  msg = instance.error_message 

  if html_tag =~ /<(input|textarea|select)[>]+class=/
    class_attribute = html_tag =~ /class=['"]/ 
    html_tag.insert(class_attribute + 7, "error ") 
  elsif html_tag =~ /<(input|textarea|select)/
    first_whitespace = html_tag =~ /\s/ 
    html_tag[first_whitespace] = " class='error' "
  end 

  html_tag
}
0 голосов
/ 13 июля 2014

Вы также можете использовать jQuery для этого. Все еще чувствую себя взломанным, но это работает.

$('.field_with_errors input').unwrap();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...