Есть ли способ добавить html в пользовательские сообщения об ошибках проверки в функции проверки?
Например:
class Product < ActiveRecord::Base
validates :legacy_code, :format => { :with => /\A[a-zA-Z]+\z/,
:message => "Only letters allowed <a href=\"www.example.com\"> Check here </a> " }
end
Выполнение вышеприведенного просто дает строковый литерал без того, чтобы браузер интерпретировал его как html с тегом.
Я пытался использовать локаль, но это кажется более сложным способом сделать это. Я просмотрел кучу веб-сайтов, а также попытался переопределить метод field_error_proc.
Например:
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
errors = Array(instance.error_message).join(',')
%(#{html_tag}<span class="validation-error"> #{errors}</span>).html_safe
end
Приведенное выше работает, но выдает в два раза больше сообщений об ошибках, чем предполагалось.
Любая помощь здесь будет принята с благодарностью.
Решено с помощью .html_safe в частичном сообщении об ошибке:
<% if @user.errors.any? %>
<div id="error_explanation">
<div class="alert alert-error">
The form contains <%= pluralize(@user.errors.count, "error") %>.
</div>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li>* <%= msg.html_safe %></li>
<% end %>
</ul>
</div>
<% end %>