2011-03-21 75 views
29

如何獲取模型中資源的路徑?我需要將它存儲在數據庫中,並且想要從resourcename_path(資源)獲得相同的urlRails,獲取模型中的資源路徑

+2

爲了最充分的解答,請參閱http://stackoverflow.com/q/341143/793946 – 2013-01-13 17:21:25

回答

38

在Rails 3中,可以在模型中包含url助手(儘管它通常不是處理東西):

class MyClass < ActiveRecord::Base 
    include Rails.application.routes.url_helpers 
end 

在Rails 2中,我認爲它是include ActionController::UrlWriter,但我不記得了。 Google是你的朋友。

+1

軌道2是::的ActionView助手:UrlHelper和ActionController的:: UrlWriter – jvatic 2011-03-23 20:13:23

+0

你的Rails 3的溶液生成以下錯誤:RuntimeError :缺少主機鏈接到!請提供:host參數或設置default_url_options [:host] – jvatic 2011-03-23 20:14:29

+0

@jvatic,如果您使用_url而不是_path,則需要告訴它主機是什麼。在視圖中它可以採用當前的主機,但模型不知道這些,因此需要告訴使用什麼。 – idlefingers 2011-03-24 08:33:11

60

在Rails 3和導軌4可以使用:

Rails.application.routes.url_helpers 

例如

Rails.application.routes.url_helpers.posts_path 
+1

一個小時的搜索和沒有人設法給我一個和你一樣簡單明確的答案。非常感謝。 – dimitarvp 2012-05-30 14:05:10

+3

僅供參考,如果您需要訪問引擎的路由,則相當於:MyEngineName :: Engine.routes.url_helpers.some_path – 2012-06-07 16:08:38

+0

感謝Theo!正是我在找的東西。 – Docunext 2012-09-06 04:31:06