Ошибка маршрутизации Rails - URL работает, хотя кнопка для ссылки на него не будет

Я пишу то, что в настоящее время является очень неэлегантной программой для создания планов фитнеса и имеет проблему с маршрутизацией. Я хочу, чтобы на моей индексной странице были кнопки, привязанные к определенным частям тела и генератору плана, и сами страницы работают, когда я перехожу к ним напрямую. Однако кнопки на моем индексном представлении не будут работать, выбирая ошибку маршрутизации: "Никаких маршрутов не соответствует [POST]"/exercise/index ".

Например, удаление URL-адреса для "/exercise/legs" или "/exercise/generator" в мой браузер загружает страницу так, как должно быть, хотя <% = button_to "Ноги", "упражнения/ноги"%> (также как перенаправление на exercise_legs_path и каждый другой параметр, о котором я думал) дает ошибку.

Уверен, это что-то довольно простое, я скучаю (очень новичок в этом), и любой совет будет замечательным!

База данных в настоящее время содержит столбцы для: id, ': move' (т.е. нажмите вверх) и ': bodypart' (т.е. ноги).

Вот мои маршруты:

Helper HTTP Verb Path Controller#Action
 GET /exercises/:bodypart(.:format) exercises#bodypart
exercises_generator_path GET /exercises/generator(.:format) exercises#generator
exercises_index_path GET /exercises/index(.:format) exercises#index
root_path GET / exercises#index
exercises_path GET /exercises(.:format) exercises#index
 POST /exercises(.:format) exercises#create
new_exercise_path GET /exercises/new(.:format) exercises#new
edit_exercise_path GET /exercises/:id/edit(.:format) exercises#edit
exercise_path GET /exercises/:id(.:format) exercises#show
 PATCH /exercises/:id(.:format) exercises#update
 PUT /exercises/:id(.:format) exercises#update
 DELETE /exercises/:id(.:format) exercises#destroy

И мой файл route.rb:

Rails.application.routes.draw do

 get '/exercises/:bodypart', to: 'exercises#bodypart'
 get '/exercises/generator', to: 'exercises#generator' 
 get 'exercises/index'

 root :to => 'exercises#index'
 resources :exercises

end

Спасибо заранее, и дайте мне знать, если что-нибудь еще у меня есть, что поможет с этим.

1 ответ

Rails.application.routes.draw do

 get '/exercises/:bodypart', to: 'exercises#bodypart', as: 'exercises_bodypart'
 get '/exercises/generator', to: 'exercises#generator' 
 get 'exercises/index'

 root :to => 'exercises#index'
 resources :exercises

end

вместо

Rails.application.routes.draw do

 get '/exercises/:bodypart', to: 'exercises#bodypart'
 get '/exercises/generator', to: 'exercises#generator' 
 get 'exercises/index'

 root :to => 'exercises#index'
 resources :exercises

end

Применение:

exercises_bodypart_path('legs')

licensed under cc by-sa 3.0 with attribution.