Я хочу создать маршруты маршрутов вручную, а не использовать автоматический resource :tasks
(это просто упражнение, я вернусь к ресурсам using: задачи, как только я понимаю это).Rails: маршруты, созданные вручную, имеют разные префикс от созданных с помощью ресурсов
Я/думаю/что у меня есть правильный синтаксис, но префиксы (path_helpers), сгенерированные при написании маршрутов вручную, неверны. Почему, и что я не делаю правильно?
Вот мой код:
Rails.application.routes.draw do
root to: 'tasks#index'
get 'tasks', to: 'tasks#index'
get 'tasks/:id', to: 'tasks#show'
get 'tasks/new', to: 'tasks#new'
post 'tasks', to: 'tasks#create'
get 'tasks/:id/edit', to: 'tasks#edit'
patch 'tasks/:id', to: 'tasks#update'
delete 'tasks/:id', to: 'tasks#destroy'
end
Вот маршруты, & префиксы создает, когда я звоню rails routes
в моем терминале:
Prefix Verb URI Pattern Controller#Action
root GET / tasks#index
tasks GET /tasks(.:format) tasks#index
GET /tasks/:id(.:format) tasks#show
tasks_new GET /tasks/new(.:format) tasks#new
POST /tasks(.:format) tasks#create
GET /tasks/:id/edit(.:format) tasks#edit
PATCH /tasks/:id(.:format) tasks#update
DELETE /tasks/:id(.:format) tasks#destroy
Вот что я получаю, когда я использую resource :tasks
Prefix Verb URI Pattern Controller#Action
tasks GET /tasks(.:format) tasks#index
POST /tasks(.:format) tasks#create
new_task GET /tasks/new(.:format) tasks#new
edit_task GET /tasks/:id/edit(.:format) tasks#edit
task GET /tasks/:id(.:format) tasks#show
PATCH /tasks/:id(.:format) tasks#update
PUT /tasks/:id(.:format) tasks#update
DELETE /tasks/:id(.:format) tasks#destroy
EDIT:
Чтобы ответить на несколько ответов: Я знаю, что я могу использовать «как» для обозначения префиксов, но я думаю, что в этом случае мне не нужно. Из того, что я понимаю, «как» используется только в том случае, если вы хотите изменить стандартный префикс на персонализированный, или если вы думаете, что ваши маршруты могут измениться в будущем, и вы не хотите рисковать, чтобы возиться с вашим хелперы. Я должен получить правильные префиксы, не используя «как». Здесь, однако, префикс tasks_new с методом get связан с задачами # new и задачами # edit, которые, как я считаю, не являются правильными.
Подобно тому, как мало дополнения, если вы хотите, чтобы отслеживать маршруты и префиксы в процессе разработки, вы можете добавить этот драгоценный камень: https://rubygems.org/gems/restful_routing – Casey