Ruby on rails 轨道3的路线。如何为正在进行的特定操作创建/controller/id/action路由格式?

Ruby on rails 轨道3的路线。如何为正在进行的特定操作创建/controller/id/action路由格式?,ruby-on-rails,ruby,routing,Ruby On Rails,Ruby,Routing,这是rails 3应用程序的基本路由问题。我有一个控制器叫contact_infos。对于编辑操作,我希望匹配以下/contact\u infos/id/action这样的路由。我这样做的原因是专门为了ajax功能。这是我到目前为止所做的。这条路走得很好 match ':controller(/:id(/:action))(.:format)' 但这条路线打破了我的通吃路线 match ':controller(/:action(/:id))(.:format)' 所以我的申请是不能接受的

这是rails 3应用程序的基本路由问题。我有一个控制器叫contact_infos。对于编辑操作,我希望匹配以下/contact\u infos/id/action这样的路由。我这样做的原因是专门为了ajax功能。这是我到目前为止所做的。这条路走得很好

match ':controller(/:id(/:action))(.:format)'
但这条路线打破了我的通吃路线

match ':controller(/:action(/:id))(.:format)'
所以我的申请是不能接受的

我知道我可以通过以下方式确定我的具体路线

  controller :contact_infos do

  end
但是我不确定如何将url作为/contact\u infos/id/action仅匹配编辑操作,而不中断任何其他contact\u infos操作

有什么想法吗? 如果你回答正确,我肯定会给你打分。 谢谢
Alex

通过以下sytax尝试使用

  match "contact_infos/:id/edit" , :to => "contact_infos#edit", :as => 'contact_infos_edit'

请注意,虽然不是您问题的一部分,但“一网打尽”的路线是一个非常糟糕的主意

一段时间以来,这一直被认为是危险的,不建议这样做。它将允许应用程序响应所有HTTP方法的操作(例如,获取真正应该放置的内容)。这会使您面临CSRF攻击,因为只有PUT、POST和DELETE请求才需要CSRF令牌


对于所有可用的资源,您应该始终使用路由帮助程序明确路由,以确保应用程序只响应正确的请求(例如,删除销毁操作的请求)

我刚刚解决了这个问题。正确答案如下!!控制器:contact_infos do match‘contact_infos/:id/edit’=>‘contact_infos#edit’end在这种情况下,您不仅可以回答自己的问题,还可以回答自己的问题,这样对其他人有用。