好的,这是rails 3应用程序的基本路由问题。我有一个名为contact_infos的控制器。对于编辑操作,我想匹配路径,如下面的/ contact_infos / id / action。我这样做的原因是专门针对ajax功能。这是我到目前为止所做的。这条路线很好。
match ':controller(/:id(/:action))(.:format)'
但这条路线打破了我的全部路线。
match ':controller(/:action(/:id))(.:format)'
因此我的申请无法接受。
我知道我可以通过以下方式定位我的特定路线
controller :contact_infos do
end
但我不确定如何将网址匹配为/ contact_infos / id / action仅用于编辑操作,而不会破坏任何其他contact_infos操作。
有什么想法吗? 如果你给出了正确答案,我一定会给你评价。 谢谢! 亚历
答案 0 :(得分:0)
尝试使用以下语法...
match "contact_infos/:id/edit" , :to => "contact_infos#edit", :as => 'contact_infos_edit'
答案 1 :(得分:0)
请注意,虽然不是你问题的一部分,但抓住所有路线都是一个非常糟糕的主意。
一段时间以来,这被认为是危险的,不建议这样做。它将允许应用程序响应所有HTTP方法的操作(例如,对于应该真正是PUT的事物的GET)。这会使您暴露于CSRF攻击,因为只有PUT,POST和DELETE请求才需要CSRF令牌。
您应该始终使用路由助手为您提供的所有资源明确路由,以确保应用只响应正确的请求(例如DELETE请求进行销毁行为)