Rails Routing с пространством имен и форматом (для API) - PullRequest
3 голосов
/ 25 мая 2010

Я знаю, что это не RESTful, но сейчас я пытаюсь настроить контроллер api / v1. В идеале я хотел бы назвать это так:

site.com/api/v1/verify.xml

Но сейчас я не могу заставить работать .xml. Пока у меня есть следующий маршрут:

map.namespace :api do |api|
  api.connect ':controller/:action/:id'
end

Я могу сделать /api/v1/verify, но я не думаю, что он использует маршрут выше. По какой-то причине он все еще попадает в мой улов по всему маршруту, даже если он отображает правильную страницу.

map.connect '*path', :controller => 'application', :action => 'redirect_main'

Итак:
1) как я могу получить .format там?
2) И как мне сделать так, чтобы он не попал в мою ловушку на всем пути?

Ответы [ 3 ]

4 голосов
/ 25 мая 2010

1) как я могу получить .format там?

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

2) И как мне сделать так, чтобы он не попал в мою ловушку по всему маршруту?

Я считаю, что ваш универсальный маршрут должен быть последним на routes.rb.Так должно работать ...

1 голос
/ 25 мая 2010

Разве вам не нужно просто добавить .:format?

map.namespace :api do |api|
  api.connect ':controller/:action/:id.:format'
end
1 голос
/ 25 мая 2010

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

Добавление api.connect ':controller/:action/:id.:format' обратно в ваше пространство имен api даст вам доступ к params[:format] для ответа.

...