这是非常基本的,但我在Rails文档中找不到任何东西。有一个视图助手方法(Ruby代码,而不是HAML)返回
link_to(user_controlled_text, destination, options)我需要将一个HTML元素(即<bdi>)封装在user_controlled_text周围。如果我做了
link_to("<bdi>#{user_controlled_text}</bdi>", ...)然后,我的元素被视为要转义的用户控制文本的一部分。当然可以。如何告诉Rails不要转义<bdi>和</bdi>,但仍然要转义user_controlled_text
发布于 2018-02-27 19:42:47
使用content_tag
link_to(content_tag(:bdi, user_controlled_text), destination)
# or with a block
link_to(destination) do
content_tag(:bdi, user_controlled_text)
end发布于 2018-02-27 19:04:11
试试link_to("<bdi>#{h user_controlled_text}</bdi>".html_safe, ...)。
如果h不能工作,请使用ERB::Util::h。
发布于 2018-02-28 03:54:46
我同意前两个答案,如果链接目标很难适应name参数,也可以使用块。我用了如下所示
<%= link_to(destination) do %>
<bdi>
<%= user_controlled_text %>
</bdi>
<% end %>但是我知道这不是一个有效的HTML在a href标记中的使用。
以下是完整的参考资料
https://stackoverflow.com/questions/49016037
复制相似问题