2016-03-16 5 views
0

У меня есть следующие в моих маршрутах файлРубин на рельсы - удаление маршрутов, созданных ресурсов

resources :users do 
    resource :question 
end 

который создает /пользователей /: user_id/вопрос маршрут к вопрос # показать среди других. Однако вместо URL-адреса, в котором пользовательский идентификатор должен показывать каждый вопрос, созданный конкретным пользователем, я хочу, чтобы URL-адрес отображал детали одного конкретного вопроса. Что-то вроде/вопрос /: идентификатор

Так, чтобы сделать это, я добавил строку ниже, чтобы мои маршруты файл

resources :questions, param: :question_id 

который генерируется список маршрутов

questions_path GET /questions(.:format) вопросы # индекс POST /questions(.:format) вопросы # создать new_question_path GET /questions/new(.:format) вопросы # новый edit_question_path GET /questions/:id/edit(.:format) вопросы # редактировать question_path GET/questi ons /: id (.: format) вопросы # показать PATCH /questions/:id(.:format) вопросы # обновление PUT /questions/:id(.:format) вопросы # обновление DELETE/questions /: id (:. формат)

Этот список производит /вопросы /: идентификатор пути, но, к сожалению, с теми же вопросами # показать соединение, которое вступает в противоречие с предыдущим. Поэтому я удалил «ресурсы: вопросы, Param:: вопрос» и добавлены следующие

get 'questions/:id', :to => 'questions#show_question' 

Это создает соответствующий маршрут, но по какой-то причине не избавиться от маршрутов, созданных из «ресурсов: вопросы , param:: вопрос « даже после перезапуска сервера. Поэтому каждый раз, когда я посещаю/вопрос /: ID это будет вопрос # показать вместо вопроса # show_question

Как я могу избавиться от эффекта «ресурсов: вопросы, Param:: вопрос» даже после удаления это из файла routes.rb?

ответ

0

Я хотел бы удалить маршрут get 'questions/:id', :to => 'questions#show_question' и использовать неглубокие маршруты вместо

resources :users do 
    resources :questions, shallow: true 
end 

И тогда ваш url_helper должен быть

<td><%= link_to 'Show', question_path(question) %></td> 

Это позволяет URL-адресов для ресурсов, которые в противном случае были бы глубоко вложенных друг в друга, такие как комментарий к сообщению в блоге, как/users/a-long-permalink/comments/1234, чтобы сократить или просто комментарии/1234.

Дополнительная информация по мелким маршрутам здесь http://edgeguides.rubyonrails.org/routing.html

Смежные вопросы