【问题标题】:Convert plain text URLs to HTML hyperlinks in Ruby on Rails?在 Ruby on Rails 中将纯文本 URL 转换为 HTML 超链接?
【发布时间】:2010-06-22 16:43:52
【问题描述】:

我有一个文本区域,用户可以在其中输入大量可能包含超链接的文本。如何显示文本并使 URL 自动显示为超链接?是否有 gem、插件或现有方法可以做到这一点?我希望能够执行以下操作:
<%=h @my_object.description.with_links %> 在我看来。

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

Rails 3

使用提供的名为 auto_link 的辅助方法,它是 ActionPack 的一部分。

<%=h auto_link(@my_object.description) %>

Rails 4

自动链接已从 Rails 中删除,并已被添加到 rails_autolink gem。

require 'rails_autolink'

auto_link("Go to http://www.rubyonrails.org and say hello to david@loudthinking.com")
# => "Go to <a href=\"http://www.rubyonrails.org\">http://www.rubyonrails.org</a> and
#     say hello to <a href=\"mailto:david@loudthinking.com\">david@loudthinking.com</a>"

【讨论】:

  • 你可能要小心使用它。它生成 html_safe 文本。这意味着如果您要转换的文本类似于:“hello
    www.google.fr
    ”,您会得到一个惊喜(当然还有一个安全漏洞)
  • 要添加到 Marcel 的评论中,Sanitize gem 可以帮助选择性地删除 HTML。
  • 看起来它不再可用。您在答案中的链接未指向正确的页面。
  • 从 Rails 3.1 中移除并打包到 auto_linkgem
  • 【解决方案2】:

    rinkugem,显然比autolinkgem 更快更准确

    【讨论】:

      猜你喜欢
      • 2010-12-29
      • 1970-01-01
      • 2020-02-15
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 2022-01-18
      • 2016-04-04
      相关资源
      最近更新 更多