Routes.rb не отражается в _path и _url - PullRequest
0 голосов
/ 10 января 2019

Я определил пользовательские URL-пути в routs.rb, но мои помощники _path и _url создают дополнительные неправильные маршруты.

routes.rb

get '/:id', to: 'groups#show', constraints: proc {|req| FriendlyId::Slug.where(sluggable_type: 'Group').pluck(:slug).include?(req.params[:id])}, as: :group
get '/:id', to: 'custom_pages#show', constraints: proc {|req| FriendlyId::Slug.where(sluggable_type: 'CustomPage').pluck(:slug).include?(req.params[:id])}, as: :custom_page
get ':group_id/:id', to: 'exams#show', constraints: proc {|req| FriendlyId::Slug.where(sluggable_type: 'Exam').pluck(:slug).include?(req.params[:id])}, as: :exam

Ожидаемые маршруты:

  • / заказ /
  • / тест /
  • / тест / экзамен /

Фактические маршруты:

  • / заказ /
  • / тест /
  • / тест / экзамен / (загружается, но не определено _path или _url)
  • / экзамен / (определено для _path & _url)

Таким образом, загружаются все нужные маршруты, но помощники _path и _url постоянно отображают неверный путь для экзамена (/exam/), несмотря на то, что они не находятся в маршрутах. : /

Что я делаю не так?

1 Ответ

0 голосов
/ 10 января 2019

Я предполагаю, что вопрос о результатах exam_path и exam_url помощников по маршруту. Это, вероятно, из-за того, как вы их называете.

Поскольку в пути есть дополнительные параметры, вы должны передать их и помощнику:

exam_path('exam', group_id: 'test') # => /test/exam
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...