我正在开发一个普通的rails博客应用程序,我需要添加一个标签功能(与每个社交媒体使用的标签相同)。
帖子的例子:“我爱#狗”。我需要做的是将标记#dogs显示为link_to dogs_path。有什么想法吗?
发布于 2019-03-14 04:01:02
您可以使用正则表达式扫描字符串并提取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) %>发布于 2019-03-14 04:00:55
您可以在您的HTML文件中使用下面的ERB在文本之外创建一个链接:<%= link_to "#dogs", dogs_path %>
其中紧跟在link_to后面的字符串是将作为页面上的文本填充的字符串(超链接)。
对于您的情况,您可以这样做:
<p>I love <%= link_to "#dogs", dogs_path %>.</p>https://stackoverflow.com/questions/55150221
复制相似问题