2012-07-05 30 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