如何向控制器添加新动作?

时间:2010-12-27 07:39:45

标签: ruby-on-rails routes action

我在路由中使用以下内容向我的电子邮件控制器添加新操作:

   map.resources :emails, :member => { :newfwd => :put}

预期的结果是newfwd_email_path(:id => 1)将生成以下urL:emails / 1 / newfwd

确实如此。但是我得到一个错误,它将'1'视为动作,将'newfwd'视为id。我希望'1'被解释为电子邮件的id,newfwd操作在其上发挥作用。

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

2 个答案:

答案 0 :(得分:1)

尝试

link_to newfwd_email_path(1), :method => :put

:id => 11;)

一样好

答案 1 :(得分:0)

您不需要将哈希值传递给newfwd_email_path方法。尝试

newfwd_email_path(1)

编辑:您还需要使用:method => :put用于确保在服务器上收到请求并且路由生效时使用PUT谓词。