2013-04-18 59 views
2

我試圖讓Rails中的路徑到一個模型,我不一定知道rake任務中的類(所以它不在.erb中)。在Rails中,未知模型的URL助手是什麼?

我知道我能做到這一點:

Rails.application.routes.url_helpers.<model>_path(model) 

但是如果我不一定知道型號?看起來不是Rails-y打開model.class或任何其他類似的檢查。我只是尋找模型的默認路徑或網址。

編輯:爲了說明我的默認路徑是什麼,它是當你做link_to時得到的href;即,你可以這樣做:

<%= link_to "my model", @model %> 

不指定URL助手像model_path。這就是我要找的。

+0

我不知道你在問什麼。模型沒有「默認路線」。 – sevenseacat 2013-04-18 04:01:17

回答

3

在內部,link_to調用url_for來獲取給定參數的路徑。

如果您使用型號致電url_for,它會進一步轉至polymorphic_pathpolymorphic_url

所以這樣的事情應該工作,如果你只是想路徑

task :some_task => :environment do 
    include Rails.application.routes.url_helpers 

    # ... 

    path = polymorphic_path(some_model_instance) # => e.g. "/widgets/42" 
end 

您也可以只使用url_for,但你必須定義:host選項。 See here瞭解更多