我如何解析文本到Rails中的链接

时间:2019-03-13 19:54:49

标签: jquery ruby-on-rails tags

我正在使用常规的Rails博客应用程序,我需要添加标签功能(与每个社交媒体使用的标签相同)。

示例:“我爱#dogs”。我需要做的是将标签#dogs显示为link_to dogs_path。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用HTML文件<%= link_to "#dogs", dogs_path %>

中的此ERB建立文本链接。

link_to之后的字符串是将作为文本填充在页面上的字符串(超链接)。

对于您的情况,您可以执行以下操作:

<p>I love <%= link_to "#dogs", dogs_path %>.</p>

答案 1 :(得分:0)

您可以使用正则表达式扫描字符串并提取hastags

示例

source = 'Lets #go to the #gym #today'

hashes = source.scan /\B#[á-úÁ-Úä-üÄ-Üa-zA-Z0-9_]+/

puts hashes

replit上查看

创建一个辅助方法

class SocialHelper
  def linked_content(source)
    hashes = string.scan(/\B#[á-úÁ-Úä-üÄ-Üa-zA-Z0-9_]+/)
    hashes.each do |hash|
      source.gsub!(hash, hash_link(hash)
    end
    source
  end

  def hash_link(hash)
    link_to hashes_path(hash)
  end
end

视图

<%= linked_content(post.content) %>