【发布时间】:2014-12-19 19:45:23
【问题描述】:
我是 RoR 新手,我正试图弄清楚如何让 gsub 方法将 html 添加到我的页面。具体来说,我正在尝试一个练习,比如 Twitter,将路由到一个操作,该操作将通过链接用户的用户名来列出用户的推文。因此,内容属性中的字符串@username 将链接到用户推文中的/tweets/username 列表。我已经完成了动作和路线,但我无法让 gsub 正常工作。这是我认为可行的方法
<%= content_tag :p, twet.content.gsub(/@[a-zA-z0-9]/, <html code here>)%>
但事实并非如此。 html 呈现为文本。为了解决这个问题,我还尝试使用 $1 变量创建一个 link_to 辅助方法
<%= content_tag :p, twet.content.gsub(/@[a-zA-z0-9]/, link_to(("#{$1}", user_tweet_path($1)))%>
但这也不起作用。我阅读了其他帖子并了解到由于恶意代码保护,rails 可能无法打印 html,并且在 sub 之后设置了 $1,所以我不知道如何使它工作。
【问题讨论】:
-
不相关,但我会犹豫将这种逻辑放在视图中。似乎它想被提取到帮助器、装饰器等。
标签: ruby-on-rails ruby gsub