Ruby on rails 如何使用sanitize以明文形式添加链接?

Ruby on rails 如何使用sanitize以明文形式添加链接?,ruby-on-rails,Ruby On Rails,因此,我希望能够在帖子正文中添加链接(而不是以明文形式显示)。但是,我不想允许任何其他HTML标记。现在我有: sanitize @post.body, tags: %w(a), attributes: %w(href) 但这似乎不起作用。 我也试过了 simple_format(@post.body).gsub(URI.regexp, '<a href="\0">\0</a>').html_safe simple_格式(@post.body).gsu

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

    sanitize @post.body, tags: %w(a), attributes: %w(href)
但这似乎不起作用。 我也试过了

    simple_format(@post.body).gsub(URI.regexp, '<a href="\0">\0</a>').html_safe
simple_格式(@post.body).gsub(URI.regexp.)).html_-safe
但这允许使用其他HTML标记,这是我不想要的


有没有办法解决这个问题?谢谢

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

单击以查看有关的链接


对于数据库,您可以将
标记和
href
属性列为白名单,以便它实际生成链接

最后使用自动链接gem:auto\u link(@comment.body)

需要更多信息。sanitize@post.body,标签:%w(a),属性:%w(href)应按预期工作sanitize应按您的要求执行。如果它不起作用,我们需要更多的信息来解决你的问题什么样的信息?什么都可以。正在呈现什么?没有什么?html标记?您测试的@post.body的内容是什么?正如我提到的,它显示为纯文本,而不是链接。我尝试的字符串是:单击此处查看有关我不明白这意味着什么的链接,你能在你的问题中包含@post.body的原始值吗?我讨厌通过评论进行交谈。见我的编辑answer@user3477051这有意义吗?