我已经在routes.rb中定义了自定义URL路径,但是我的_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/
),尽管不在route.rb中。 :/
我在做什么错了?
答案 0 :(得分:0)
我假设问题是关于exam_path
和exam_url
的路由助手结果。
这可能是因为您称呼他们的方式。
由于path中还有其他参数,因此您也应该将它们传递给helper:
exam_path('exam', group_id: 'test') # => /test/exam