如何在simple_form中转义错误中的HTML标记

时间:2017-09-12 12:32:10

标签: ruby-on-rails simple-form

我使用的是Rails 3.2.22和simple_form 2.1.3

我们的某些字段有重复检查,错误包含指向重复记录的链接(因此用户可以检查它是否只是重复的名称,或者是否他们不重复需要创建记录)。

但是,我们最近从自定义表单构建器切换到简单表单,现在这些错误消息被转义,显示转义错误。

我在a minimal app中重现了这个问题:

在Doohickey模型中:

  validate :unique_name_validation
  def unique_name_validation
    other_doohickey = Doohickey.find_by_name(name)
    if other_doohickey
      errors.add(
        :name,
        "This name is already taken by <a href='/doohickey/#{other_doohickey.id}'>#{other_doohickey.name}</a>"
      )
    end
  end

在用户界面中:

<%= simple_form_for @doohickey do |form| %>
  <%= form.input :name %>
  <%= form.button :submit %>
<% end %>

UI在页面上显示HTML ...

enter image description here

还有/config/initializers.rb中的一些配置,但是我还没有找到办法来关闭这个转义。

如何使用简单表单显示错误链接?

1 个答案:

答案 0 :(得分:2)

请记住,内容永远不会是零,那么您可以使用html_safe,例如:

"This name is already taken by <a href='/doohickey/#{other_doohickey.id}'>#{other_doohickey.na‌​me}</a>".html_safe