路线问题

时间:2010-09-17 12:42:37

标签: ruby-on-rails

我想将RoR中的默认路由更改为我想要的: 考虑以下示例...

:controller/:action/:id

将在浏览器中为您提供以下路线: http://localhost:3000/controller/action/id

现在我想把它改成......

http://localhost:3000/this-is-what-i-want/id

我们可以获得控制器和动作的别名,例如......

resources :controller, :as => "my-custom-name"

如果您想拥有该操作的别名,那么

resources :controller, :path_names => { :action => 'my-custome-name-1', :action => 'my-custome-name-2' }

但我想立即更改控制器和操作...如果您在问题中注意到上述 http://localhost:3000/this-is-what-i-want/id 路径。 ..

需要帮助...... 提前谢谢......

2 个答案:

答案 0 :(得分:1)

您需要一条命名路线。

在Rails 2中:

map.a_name 'this-is-what-i-want/:id', :controller => 'controller_name', :action => 'action_name'

在Rails 3中:

match 'this-is-what-i-want/:id' => 'controller_name#action_name'

答案 1 :(得分:0)

您希望使用Rest路由,而不是控制器/操作

我打算用“球”而不是“这就是我想要的东西”

resources :balls

然后,当您链接到球时,请link_to(ball.name, ball)。

这会为您提供 http://localhost:3000/balls/45

的链接

这个rails rest cheatsheet是一个好的开始。