Ruby on rails 如何向控制器添加新操作?

Ruby on rails 如何向控制器添加新操作?,ruby-on-rails,routes,action,Ruby On Rails,Routes,Action,我使用以下in routes向我的电子邮件控制器添加新操作: map.resources :emails, :member => { :newfwd => :put} 预期结果是newfwd_email_path(:id=>1)将生成以下urL:emails/1/newfwd 是的。但我得到了一个错误,它将“1”视为一个操作,“newfwd”视为一个id。我希望将“1”解释为电子邮件的id,newfwd操作将根据该id进行操作 我不确定我做错了什么。(注意:我使用的是Rail

我使用以下in routes向我的电子邮件控制器添加新操作:

   map.resources :emails, :member => { :newfwd => :put}
预期结果是newfwd_email_path(:id=>1)将生成以下urL:emails/1/newfwd

是的。但我得到了一个错误,它将“1”视为一个操作,“newfwd”视为一个id。我希望将“1”解释为电子邮件的id,newfwd操作将根据该id进行操作


我不确定我做错了什么。(注意:我使用的是Rails 2.3.8)

您不需要将哈希传递给newfwd\u email\u path方法。试一试

newfwd_email_path(1)
编辑:您还需要使用:method=>:put来确保在服务器上收到请求并且路由生效时使用put动词。

试试看

link_to newfwd_email_path(1), :method => :put
:id=>1
1
;)一样好)

我明白了,为什么把这个方法放在路由中不起作用?让我试试……我想,谢谢——你知道为什么吗?似乎如果我把它明确地放在路线上,它应该会起作用。。。。?