2013-09-28 77 views
5

我開始學習Ruby on Rails,我有一些疑惑。link_to vs url_for vs Rails路徑

我已經看到了Rails documentation,但我完全不之間的差異理解:

  • url_for
  • 的link_to
  • 路徑

以及我如何使用/發現我的應用程序的路徑?此外,我可以發送路徑參數,如:

<%= users_path + "/user.id/" %> 

有沒有類似的東西?

+0

你檢查了嗎? http://guides.rubyonrails.org/routing.html#listing-existing-routes – depa

回答

9

url_for爲您提供網站的完整鏈接,例如:www.example.com/my/path可能來自url_for my_path_url之類的內容。

link_to給你一個鏈接到一個特定的路徑,例如:

link_to example_path,"click me" 

會導致

<a href="www.example.com/my/path">click me</a> 

您還可以使用此與url_for這樣的:

link_to url_for(my_resource_path) 

resource_path用於引用routes.rb文件中的路徑。例如,如果您有

match '/my/:id/page' => 'my#page' 

您可以使用my_page_path(...)

如果您需要:id作爲路徑,您可以將它作爲參數傳遞給您的resource_path,如下所示:my_page_path(current_user.id)

此外,還可以在其他查​​詢參數通過簡單地將其附加到預定的路徑添加參數:

my_page_path(current_user.id,:hello => "world") 

你問你是否能路徑添加到現有的路徑。是的,您可以,因爲這些函數只是將字符串返回給調用者,所以對於所有意圖和目的,只要該路徑與您的字符串結合成適當的路線,就可以完成您所寫的內容。

+0

謝謝,如果你可以更好地風格你的答案。無論如何,我會給你最好的答案,但如果有人需要幫助,情況會更好。謝謝,這真的有幫助。 – Paladini

+0

'此外,您可以通過簡單地將它們附加到預設的路由參數來添加其他查詢參數,這很好,我無法找到API來探索此參數。即使在這裏http://guides.rubyonrails.org/routing.html你知道我在哪裏可以找到這種路徑方法的API文檔? – GMsoF