【发布时间】:2019-03-13 19:54:48
【问题描述】:
我正在开发普通的 Rails 博客应用程序,我需要添加一个标签功能(与每个社交媒体使用的标签相同)。
帖子示例:“我爱#dogs”。我需要做的是将标签#dogs 显示为link_to dogs_path。有什么想法吗?
【问题讨论】:
-
您能否向我们展示您当前的代码,到目前为止您尝试了什么?
标签: jquery ruby-on-rails tags
我正在开发普通的 Rails 博客应用程序,我需要添加一个标签功能(与每个社交媒体使用的标签相同)。
帖子示例:“我爱#dogs”。我需要做的是将标签#dogs 显示为link_to dogs_path。有什么想法吗?
【问题讨论】:
标签: jquery ruby-on-rails tags
您可以使用正则表达式扫描字符串并提取标签
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) %>
【讨论】:
您可以在 HTML 文件中使用此 ERB 建立文本链接:<%= link_to "#dogs", dogs_path %>
紧跟在link_to 之后的字符串是将在页面上作为文本填充的字符串(超链接)。
对于您的情况,您可以执行以下操作:
<p>I love <%= link_to "#dogs", dogs_path %>.</p>
【讨论】: