1

如果我有控制器,如何通过 URL 使用新添加的方法访问它?

我感到困惑的原因是因为我有一条路线,

map.connect 'assignments/:external_id.:format', :controller => "assignments", :action => "show", :external_id => /\d{6}/

似乎我无法访问assignments控制器中的任何其他方法,因为如果我这样做

mysite.com/assignments/other_method

它将假设 other_method 是我传递给show控制器​​的 ID,如上面的路由条目中所指定。

编辑:

我将此添加到顶部:

map.connect 'assignments/send/', :controller => "assignments", :action => "send"

现在收到此错误:

ArgumentError in AssignmentsController#show 

路线assignments/send是任何分配控制器的第一个声明

4

2 回答 2

1

您的路由表应按此顺序排列

map.connect 'assignments/:external_id.:format', :controller => "assignments", :action => "show", :external_id => /\d{6}/

map.connect 'assignments/send/', :controller => "assignments", :action => "send"

以结束

  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'

作为您最一般的情况。

于 2010-11-25T18:20:05.983 回答
0

只需为第二种情况指定正确的路由模式,并确保记住映射是从上到下评估的(第一个匹配被执行)。

于 2010-11-25T15:16:05.667 回答