2012-07-05 28 views
2

我们正在开发一类Rails应用程序,其中一类用户编辑和创建文章。有时这些文章包含指向网站上其他文章的链接。什么是最好的方式来做到以下几点?RoR站点中用户提交的内部链接

  • 商店的数据库
  • 链接渲染页面

上的链接目前,我们有被捆绑到实际域名静态链接 - 这显然已去。做这个的最好方式是什么?

+0

与_domain name_绑定的链接确实感觉有点沉重,但如果您不介意在每次更改文章布局时编写代码以重新编写所有文章中的链接,那么static对我来说并不会太可怕。 (我的意思是,你可能会竭尽全力保持网页的稳定性,以保持你的网页排名和用户存储的书签...) – sarnold 2012-07-05 22:03:59

+0

嗯没关系。如果在模型中可以写出内容中的链接,并且记录它们不仅仅是URL而且是对内部记录的引用,那将是非常好的。然后,如果记录以某种方式更改,它可以更新它们。这是否有意义? 我想你所说的是编写一个rake任务或者一些检查所有链接的东西,并且如果它们的位置已经移动,就更改它们。 – smallsense 2012-07-06 00:49:46

+1

哦,它使_perfect_有道理;你需要像['link_to'方法](http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to),但是能够理解_your_数据。构建一个快速的小解析器来查找所有'[controller:foo;行动:酒吧; id:12345]'在一篇文章中输出正确的链接将非常激烈。但感觉像解决“我的URL经常移动”这样的问题需要做大量的工作 - 事实上,URLs应该是非常静止和无聊的...... – sarnold 2012-07-06 00:54:06

回答

3

如果使用低于3.1的轨道版本,你可以使用auto_link http://apidock.com/rails/ActionView/Helpers/TextHelper/auto_link

,或者如果你是在轨道上的版本3.1或更高版本,还有一个宝石http://rubygems.org/gems/rails_autolink

您可以通过文本作为参数自动链接。

+0

这部分有用,但只能真正解决将明文URL转换为实际链接的问题。我在这里寻找的主要内容是让rails知道URL实际上是指它应该知道的记录。 – smallsense 2012-07-06 00:43:01

+0

不知道我明白,你想让你的应用程序发现所有的内部链接? – 2012-07-06 00:46:00

+0

非常。只需处理用户生成内容中存在内部站点引用的情况。看到我上面的评论。顺便说一下,感谢您的链接,我最终会使用类似的东西。 – smallsense 2012-07-06 01:49:08