Ruby on rails 如何为rails控制器中新创建的方法生成id为的路径

Ruby on rails 如何为rails控制器中新创建的方法生成id为的路径,ruby-on-rails,path,routes,Ruby On Rails,Path,Routes,我正在向现有的基于REST的用户控制器添加新方法“editpass” 我想将id传递给editpass方法,edit对edit\u user\u路径执行此操作 我在routes.rb中添加了以下内容 resources :user do collection do get 'editpass' end end 及 rake:routes为editpass生成以下内容: /user/:id/editpass(.:format) {:action=>"ed

我正在向现有的基于REST的用户控制器添加新方法“editpass”

我想将id传递给editpass方法,edit对edit\u user\u路径执行此操作

我在routes.rb中添加了以下内容

resources :user do
    collection do
     get 'editpass'
    end
 end

rake:routes为editpass生成以下内容:

 /user/:id/editpass(.:format)    {:action=>"editpass", :controller=>"user"
此路由没有路径名

为rails3中id为的方法生成路径的最佳方法是什么

提前谢谢

森林

 match 'user/:id/editpass' => 'user#editpass', :as => 'user_editpass'

这将使用户编辑传递路径(:id=>@user)工作。

首先,如果您使用的是
资源,而不是
资源,您应该将
用户
多元化为
用户
,使之更为传统

resources :users do
  collection do
    get :editpass
  end
end
然后您可以使用:

link_to "Edit Pass", [:editpass, :users]

同样使用
match'user/:id/editpass'=>“user#editpass'
会弄乱你的路线,这绝对是个愚蠢的想法,因为你的对手实际上是
成员
,而你将其添加为
集合

link_to "Edit Pass", [:editpass, :users]
link_to "Edit Pass", editpass_users_path