2008-12-02 143 views
4

我掙扎這裏一個問題: 我有一個控制器問題其中有行動。 每當我需要創建新的問題,我打字軌路由控制器動作變化

/questions/new 

什麼樣的變化,以routes.rb中我應該做的URI改爲

/questions/ask 

謝謝。 閥門。

回答

7

試試這個:

map.ask_question '/questions/ask', :controller => 'questions', :action => 'new' 

然後你就會有一個名爲路線,你可以:

link_to "Ask a question", ask_question_path 
+0

嗨,基督徒。 請問這能讓我輸入http:// mySite/questions/ask並去 問控制器嗎?請注意,我正在嘗試使用RESTful路由。 謝謝, 閥門。 – Valentin 2008-12-02 10:52:17

0

哪個版本的導軌?

通常情況下,默認路由應該捕獲任何類似於/:controller /:action的內容,因此您可以在問題控制器中創建一個ask方法。查看named_route和map_resource的api文檔,如果您想要更平滑一些的工作。

+0

你好,傑森。 Rails 2.2.2。 我嘗試使用RESTful路由,所以我刪除了默認的兩條路由 (controller/action/id和其他)。 我希望如 map.resources:questions,:action => {:new =>:ask} 如果可能的話。 謝謝。 – Valentin 2008-12-02 09:52:32

5

如果您正在使用REST風格的路線,也許你想使用map.resources爲您的問題

要重命名操作URL,你可以這樣做:

map.resources :questions, :path_names => { :new => 'ask', :delete => 'withdraw' }

(我添加刪除例子的緣故)