2010-07-13 94 views
2

正如話題所說。我想更改默認的控制器/:ID路由到控制器/:名稱,而不是對Rails 3在Rails 2你用過命名,像這樣的路由:如何更改Rails路由從控制器/:id到控制器/:在Rails 3中的名稱?

的config/routes.rb中

map.location 'location/:name', 
    :controller => 'your_controller', :action => 'your_action' 

備用命名路線

map.location 'goto/:name', :controller => 'location', :action => 'your_action' 

在視圖URL說明書的示例

<%= link_to 'foo', location_url({:name => 'foo'}) %> 
<%= link_to 'bar', location_path({:name => 'bar'}) %> 

但我敢肯定存在的Rails 3

+0

你有沒有試過這個? – 2010-07-15 03:52:31

回答

0

不知道其他(更好)的方式,但可能這會幫助你。

匹配 'user_delete /:名稱',:到=> '會話#破壞'

這是相同

map.user_delete '/ user_delete /:名稱',:控制器=>「會話」,:動作=>‘摧毀’

0

試試這個:

match 'location/:name' => 'your_controller#your_action', :as => location 
0

我F你有location.name,那麼你可以LINK_TO這樣的:

<%= link_to 'foo', location_path(location.name) %> 

會給你的網址/位置/:命名

,而不是

<%= link_to 'foo', location %> #same as <%= link_to 'foo', location_path(location) %> 

,這將給你/ locations /:id