为什么我有时需要手动定义路径中的操作,有时不需要?

时间:2010-09-09 07:04:48

标签: ruby-on-rails rest routing

假设我已经表明网络是一种资源。我正在添加一个新动作,向控制器说“submit_question_for_network”。

但是,在我将操作添加到控制器后,它不起作用

# does not work
/network/submit_question_for_network  

# need to add to :collection
map.resources :network,  :collection => {:submit_question_for_network => :post,:submit_new_or_join=>:post}   

然而,我清楚地记得它有效而无需做任何事情。到底是怎么回事?

# it is trying to do "show", instead of calling the action
Processing NetworkController#show (for 127.0.0.1 at 2010-09-09 00:07:42) [GET]
  Parameters: {"id"=>"v4test"}

1 个答案:

答案 0 :(得分:1)

您已将两个收集路由定义为发布请求,但是您正在发出请求。

如果您想要获取请求,请重新定义路由。另一方面,如果您想发布表单,请添加:method => :发布到表单助手方法。

相关问题