Почему Rails упорядочивает 7 маршрутов, созданных из: ресурсов, как это делает? - PullRequest
2 голосов
/ 15 марта 2012

Это чистое любопытство.Допустим, у меня есть ресурс «Пользователи» и я хочу создать для него стандартный набор из 7 маршрутов.В моем файле маршрутов я просто ввожу resources :users.Когда мы запускаем rake routes, мы получаем следующее:

     users GET    /users(.:format)           users#index
           POST   /users(.:format)           users#create
  new_user GET    /users/new(.:format)       users#new
 edit_user GET    /users/:id/edit(.:format)  users#edit
      user GET    /users/:id(.:format)       users#show
           PUT    /users/:id(.:format)       users#update
           DELETE /users/:id(.:format)       users#destroy

Есть ли конкретная причина, по которой он заказан так?Я понимаю, что будет использован первый маршрут, соответствующий запросу.

Моя путаница проистекает из моего мыслительного процесса о том, что маршрут # show users будет указан 3-м, а пользователи # new находятся в этой позиции.

Если бы кто-нибудь мог дать мне некоторое представление об этой схеме заказа, это было бы здорово.

Ответы [ 3 ]

1 голос
/ 15 марта 2012

Если бы пользователи # show были в списке третьими, то /users/new попытался бы показать пользователя с :id "new".

1 голос
/ 15 марта 2012

Нет особой причины , почему они такие, какие они есть, они просто такие.

Вероятно, это связано со старой (я говорю здесь 1,2 дня) компоновкой контроллера скаффолдов, где действия были расположены в указанном порядке.

Единственная проблема, с которой я могу представить, что вы столкнетесь здесь, заключается в том, что если бы у вас был пользователь с id из new, то сначала он достиг бы UsersController#new, а не идеального UsersController#show. Обойти это довольно просто: не позволяйте пользователям идентифицировать себя как «новых».

0 голосов
/ 15 марта 2012

Я читаю их, начиная с маршрутов :collection и :new, затем :member.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...