如何定义rails 3.1自定义路由

时间:2011-10-14 07:37:39

标签: ruby-on-rails

我想通过http://localhost:3000/users/1/rename/alex操作将users路由到我的rename控制器。

我做的是:

match 'users/:id/rename/:name' => 'users#rename',但这不起作用,'users/:id/'之后的部分根本没有映射,因为我无法通过params[:name]获取名称

更新: 在routes.rb

resources :users do
  put 'rename/:code', :action => :rename, :code => /\w{5}/, :on => :member
end

$ rake routes
...
PUT /users/:id/rename/:code(.:format) {:code=>/\w{5}/, :action=>"rename", :controller=>"users"}
...

1 个答案:

答案 0 :(得分:1)

如果您有resources :users,请将match行放在其前面。

或者,您可以将一个块传递给resources

resources :users do
  match 'rename/:name' => 'users#rename', :on => :member
end