Проблема с вложенным маршрутом: "Не найдено ни одного маршрута [GET] "/questions/6/response "
Я новичок в рельсах, немного борюсь с маршрутами. Я работаю над сайтом вопросов и ответов (или вопросов и ответов), и каждый раз, когда я пытаюсь опубликовать ответ, выдается следующая ошибка:
No route matches [GET] "/questions/6/responses"
Любая помощь будет принята с благодарностью, Джон
Вот соответствующие биты:
Вывод маршрутов (учитывая ошибку) (извинения за неприятную вставку):
Helper HTTP Verb Path Controller#Action
Path / Url
welcome_index_path GET /welcome/index(.:format) welcome#index
users_path GET /users(.:format) users#index
POST /users(.:format) users#create
new_user_path GET /users/new(.:format) users#new
edit_user_path GET /users/:id/edit(.:format) users#edit
user_path GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
categories_path GET /categories(.:format) categories#index
POST /categories(.:format) categories#create
new_category_path GET /categories/new(.:format) categories#new
edit_category_path GET /categories/:id/edit(.:format) categories#edit
category_path GET /categories/:id(.:format) categories#show
PATCH /categories/:id(.:format) categories#update
PUT /categories/:id(.:format) categories#update
DELETE /categories/:id(.:format) categories#destroy
question_responses_path POST /questions/:question_id/responses(.:format) responses#create
questions_path GET /questions(.:format) questions#index
POST /questions(.:format) questions#create
new_question_path GET /questions/new(.:format) questions#new
edit_question_path GET /questions/:id/edit(.:format) questions#edit
question_path GET /questions/:id(.:format) questions#show
PATCH /questions/:id(.:format) questions#update
PUT /questions/:id(.:format) questions#update
DELETE /questions/:id(.:format) questions#destroy
root_path GET / welcome#index
Маршруты:
Rails.application.routes.draw do
get 'welcome/index'
resources :users
resources :categories
resources :questions do
resources :responses, :only => [:create]
end
root 'welcome#index'
Контроллер вопросов https://github.com/joncarpe/snack/blob/master/app/controllers/questions_controller.rb
Контроллер ответов https://github.com/joncarpe/snack/blob/master/app/controllers/responses_controller.rb
1 ответ
У вас есть только маршрут к create
действие в ResponsesController
, Если вам также нужен маршрут для индексации, вы должны иметь:
resources :responses, only: [:create, :index]
Если вы хотите маршруты ко всем действиям с ресурсами по умолчанию, вам следует отказаться only
вариант, вот так:
resources :responses