【问题标题】:how can I add a new action to a controller?如何向控制器添加新操作?
【发布时间】:2010-12-27 07:39:44
【问题描述】:

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

   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)

【问题讨论】:

    标签: ruby-on-rails routes action


    【解决方案1】:

    试试

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

    :id => 11 一样好;)

    【讨论】:

    • 我明白了——为什么把方法放在路由中不起作用?让我试试这个......
    【解决方案2】:

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

    newfwd_email_path(1)
    

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

    【讨论】:

    • 谢谢,谢谢——你知道为什么吗?似乎如果我将它明确地放在路线中,它应该可以工作....?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 2014-02-04
    相关资源
    最近更新 更多