2010-07-13 102 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