我目前在我的 application_helper.rb 文件中有一个简单的方法,该方法旨在添加一个链接,该链接将在单击时向表单添加一些新字段。看起来像:
def link_to_add_fields(type, object_form_builder)
link_to type, "#", "data-partial" => h(render(:partial => type + '/form',
:locals => {type.singularize.to_sym => object_form_builder,
:form_actions_visible => false})),
:class => 'add_fields'
end
我遇到了这段代码的问题,即应该添加到data-partial
html 属性的部分被转义(大概是在呈现的 html 中的某处用引号引起来)。我的理解h()
应该防止这种情况发生,但它似乎没有这样做。谁能建议如何逃避这个?
编辑:我尝试使用html_safe
如下所述的方法,但无济于事。我已经设法让它逃脱了:
"data-partial" => "'" + render(:partial => type + '/form', :locals => {type.singularize.to_sym => object_form_builder, :form_actions_visible => false}) + "'"
但我不确定这有多安全?
编辑 2:使用单引号转义并不好 - 尽管它会转义 html,但它会在部分呈现时输出引号,这是不可取的。仍在寻找有关如何在渲染部分时成功转义 html 的任何想法。