добавление и доступ к контроллерам в ruby ​​на рельсах - PullRequest
1 голос
/ 25 ноября 2010

Если у меня есть контроллер, как я могу получить к нему доступ через URL с помощью недавно добавленных методов?

Причина, по которой я запутался, заключается в том, что у меня есть маршрут,

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

Кажется, чтоЯ не могу получить доступ ни к какому другому методу в контроллере assignments, потому что если я сделаю

mysite.com/assignments/other_method

, то будет предполагаться, что other_method - это идентификатор, который я передаю в контроллер show, как указано взапись маршрута выше.

Редактировать:

Я добавил это в начало:

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

и теперь получаю эту ошибку:

ArgumentError in AssignmentsController#show 

Маршрут для assignments/send является первым объявлением для любого из назначений контроллера

Ответы [ 2 ]

1 голос
/ 25 ноября 2010

Ваша таблица маршрутизации должна иметь его в следующем порядке

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'

как ваш наиболее общий случай.

0 голосов
/ 25 ноября 2010

Просто укажите правильный шаблон маршрута для этого второго случая и убедитесь, что вы помните, что сопоставления оцениваются сверху вниз (выполняется первое совпадение).

...