我想通过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"}
...
答案 0 :(得分:1)
如果您有resources :users
,请将match
行放在其前面。
或者,您可以将一个块传递给resources
:
resources :users do
match 'rename/:name' => 'users#rename', :on => :member
end