如何使用消毒液添加明文链接



所以我希望能够在帖子的正文中添加链接(而不是以明文形式显示)。但是,我不想允许任何其他HTML标记。现在我有:

    sanitize @post.body, tags: %w(a), attributes: %w(href)

但这似乎并不奏效。我也试过

    simple_format(@post.body).gsub(URI.regexp, '<a href=""></a>').html_safe

但这允许使用其他HTML标记,而我不希望使用这些标记。

有什么办法解决这个问题吗?谢谢

Ruby/Rails不会仅仅识别字符串中的链接,因为其中包含http或www somhwhere。假设您通过表单获得@post的正文,则需要将输入封装在某种所见即所得编辑器中,如tinymce。然后,如果所见即所得编辑器保存序列化的输入:

click to see this link about <a href="https://google.ca">google.ca</a>

对于数据库,您可以将<a>标签和href属性列入白名单,这样它实际上会生成一个链接

最终使用了auto_link宝石:auto_link(@comment.body)

最新更新