Статьи

Понимание маршрутов с помощью навигатора

Рик Олсон (Rick Olson) выпустил плагин Routing Navigator, чтобы помочь понять, как работает система маршрутизации Rails для вашего приложения (примечание: она поддерживает только рельсы, а не v1.1.2).

Чтобы проверить это:

  1. Создать новое приложение рельсов
    $ rails routingtest
  2. Установите боковые рельсы в поставщика
    $ cd routingtest $ rake rails:freeze:edge
  3. Установите плагин навигатора маршрутизации
    $ script/plugin source http://svn.techno-weenie.net/projects/plugins $ script/plugin install routing_navigator
  4. Установить CSS и JS-файл плагина
    $ rake update_routing_navigator
  5. Запустите ваше приложение
    $ script/server
  6. Перейдите к /routing_navigator
  7. Измените ваши маршруты, промойте и повторите
  8. Вы также захотите добавить следующее в заголовок макета, если хотите проверить маршруты на любой из ваших страниц просмотра:
    <%= javascript_include_tag :defaults, 'routing_navigator' %> <%= stylesheet_link_tag 'routing_navigator' %>

Для ленивых и любопытных: маршруты, сгенерированные для базового приложения Rails:

маршрут Значимые ключи Требования условия
/:controller/service.wsdl/ [: контроллер,: действие] {: Действие =>»WSDL»} {}
/: Контроллер /: Действие /: Идентификатор / [: controller,: action,: id] {} {}

… И маршруты для простого приложения RESTful , написанные с использованием плагина simply_restful :

маршрут Значимые ключи Требования условия
/:controller/service.wsdl/ [: контроллер,: действие] {: Действие =>»WSDL»} {}
/people.:format/ [: формат,: действие,: контроллер] {: action => ”create”,: controller => ”people”} {: Метод =>: запись}
/люди/ [: действие,: контроллер] {: action => ”create”,: controller => ”people”} {: Метод =>: запись}
/people.:format/ [: формат,: действие,: контроллер] {: action => ”index”,: controller => ”people”} {: Метод =>: Get}
/люди/ [: действие,: контроллер] {: action => ”index”,: controller => ”people”} {: Метод =>: Get}
/people/new.:format/ [: формат,: действие,: контроллер] {: action => ”new”,: controller => ”people”} {: Метод =>: Get}
/ Человек / новый / [: действие,: контроллер] {: action => ”new”,: controller => ”people”} {: Метод =>: Get}
/ Человек /: идентификатор / [: id,: action,: controller] {: action => ”destroy”,: controller => ”people”} {: Метод =>: удаление}
/ Человек /: идентификатор / [: id,: action,: controller] {: action => ”update”,: controller => ”people”} {: Метод =>: пут}
/people/:id.:format;edit/ [: id,: format,: action,: controller] {: action => ”edit”,: controller => ”people”} {: Метод =>: Get}
/ Человек /: идентификатор; редактировать / [: id,: action,: controller] {: action => ”edit”,: controller => ”people”} {: Метод =>: Get}
/people/:id.:format/ [: id,: format,: action,: controller] {: action => ”show”,: controller => ”people”} {: Метод =>: Get}
/ Человек /: идентификатор / [: id,: action,: controller] {: action => ”show”,: controller => ”people”} {: Метод =>: Get}
/: Контроллер /: Действие /: Идентификатор / [: controller,: action,: id] {} {}