Rails 3 глобальный и необязательный маршрут для формата, чтобы помочь кэшированию страницы - PullRequest
0 голосов
/ 07 мая 2011

Я бы хотел кэшировать страницу практически во всем в моем API, поэтому вместо обычного метода .format или ?format= я хочу сделать окончательный параметр URL жестко закодированным в маршрут. Примеры:

/sounds/123/xml
/sounds/123/json
/sounds/123/whats_new/xml
/sounds/xml
/sounds/blah_method/xml

Я знаю, что могу использовать именованные и совпавшие маршруты, чтобы добавить это к КАЖДОМУ вызову, но это не очень DRY и, похоже, должен быть лучший путь по рельсам. Есть ли способ сделать это?

1 Ответ

0 голосов
/ 22 мая 2011

Вы можете подключиться к распознаванию или генерации маршрута с помощью плагина routing-filter . Это очень гибкий, посмотрите.

Для генерации ваш вариант использования должен был бы проверить, есть ли params[:format], и в этом случае добавить новый сегмент в конце URL.

Если вам также нужно распознавание, на этот раз все наоборот, проверьте, есть ли конечный сегмент с '/xml' или '/json' и в этом случае добавьте params[:format], чтобы соответствовать ему.

...