2010-09-09 71 views
0

假设我已经指出网络是一种资源。我正在添加一个新操作,向控制器说“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

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

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

相关问题