我使用的是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 ...
还有/config/initializers.rb中的一些配置,但是我还没有找到办法来关闭这个转义。
如何使用简单表单显示错误链接?
答案 0 :(得分:2)
请记住,内容永远不会是零,那么您可以使用html_safe
,例如:
"This name is already taken by <a href='/doohickey/#{other_doohickey.id}'>#{other_doohickey.name}</a>".html_safe