2012-02-14 32 views
2

說我有這條路線:Rails中的link_to方法使用了哪些Ruby構造?

match '/somepage' => "home#somepage" 

然後我就可以做到這一點不同的頁面上鍊接到「SomePage的」:

<%= link_to "Some Page", somepage_path %> 

我是新來的Ruby和Rails的,和我努力去理解「somepage_path」部分的工作原理。這不是一個字符串,它不是一個符號,它是一個方法調用?如果是這樣,該方法在哪裏存在?似乎我錯過了一些明顯的...

+1

這些是URL helper方法,類似於link_to'本身,只是它們由路由自動生成系統(甚至可以使用'method_missing'實現,但我不這麼認爲)。 – 2012-02-14 03:24:38

+1

正如Niklas指出的那樣,這些都是路由系統創建的助手方法,可以在任何視圖中使用。欲瞭解更多信息:http://guides.rubyonrails.org/routing.html – 2012-02-14 03:49:11

回答

1

初始化時,所有路徑都根據routes.rb定義生成。 如果你想定製路線的名稱,你可以使用

match '/somepage' => "home#somepage", :as => "foobar" 

後來用作

<%= link_to "Some Page", foobar_path %> 

希望掃清一些東西了有關自定義路由:)