ruby-on-rails – 使用html自定义验证错误消息

有没有办法在验证函数添加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">&nbsp;#{errors}</span>).html_safe

end

上述工作但错误消息的数量是预期的两倍.

任何帮助将非常感谢.

通过在错误消息partial中使用.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 %>

解决方法

输出错误时,请使用raw

<%= raw f.errors %>

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...