【问题标题】:User-submitted internal links in a RoR siteRoR 站点中用户提交的内部链接
【发布时间】:2012-07-05 21:59:14
【问题描述】:

我们正在开发一个 Rails 应用程序,其中一类用户可以编辑和创建文章。有时这些文章包含指向网站上其他文章的链接。执行以下操作的最佳方法是什么?

  • 将链接存储在数据库中
  • 在页面上呈现链接

目前,我们有与实际域名相关的静态链接——这显然是必须的。最好的方法是什么?

【问题讨论】:

  • 将链接绑定到 域名 确实感觉有点繁重,但是如果您不介意每次更改您的文章时都编写代码来重写所有文章中的链接文章布局,静态对我来说并没有那么可怕。 (我的意思是,您可能会竭尽全力保持网址随着时间的推移保持稳定,以保持您的页面排名和用户存储的书签...)
  • 嗯,好吧。如果我可以在模型中编写一些东西来识别内部内容中的链接,并记录它们不仅仅是 URL,而是对内部记录的引用,那就太好了。然后,如果记录以某种方式发生变化,它可以更新它们。这有意义吗?我认为您所说的是编写一个 rake 任务或检查所有链接并在它们的位置移动时更改它们的东西。
  • 哦,这完美有意义;您想要link_to method 之类的东西,但要了解您的 数据。构建一个快速的小解析器以在文章中查找所有[controller: foo ; action: bar; id: 12345] 以输出正确的链接将非常热衷。但感觉要解决“我的网址经常移动”的问题需要做一些工作——事实上,网址应该是非常固定和无聊的......
  • 所有要点。我可能应该停止尝试解决一个甚至不存在的问题。任务是将 URL 更改为“更具动态性”,作为更通用的站点范围努力的一部分,以替换非用户生成视图中的静态链接等内容。我认为现在你的初步建议已经足够好了 - 删除对域名的依赖并保留它。将来,使用某种 BBCode 或类似维基百科的语法可能会很有趣。 [article]'文章名称'[/article].
  • 绝对有趣;甚至可能值得投入到上游 Rails 代码中的东西。听起来很整洁。 :)

标签: html ruby-on-rails ruby


【解决方案1】:

如果你使用的是 3.1 以下的 rails 版本,你可以使用 auto_link http://apidock.com/rails/ActionView/Helpers/TextHelper/auto_link

或者,如果您使用的是 rails 3.1 或更高版本,则有一个 gem http://rubygems.org/gems/rails_autolink

您可以将文本作为参数传递给 auto_link。

【讨论】:

  • 这部分有用,但只是真正解决了将纯文本 URL 转换为实际链接的问题。我在这里寻找的主要内容是让 rails 知道 URL 实际上是指它应该知道的记录。
  • 不确定我是否理解,您希望您的应用发现所有内部链接吗?
  • 差不多。只需更优雅地处理用户生成的内容中存在内部站点引用的情况。见上面我的cmets。顺便说一句,感谢您提供的链接,我最终肯定会使用这样的东西。
猜你喜欢
  • 2011-09-23
  • 2018-03-02
  • 2022-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-08
相关资源
最近更新 更多