我设置了通配符路由 - 但是我无法获得内置帮助程序来生成正确的URL。
routes.rb
resources :projects do
patch 'do/*action', to: 'projects#do', as: 'do'
end
rake routes
project_do PATCH /projects/:project_id/do/*action(.:format) projects#do
看起来不错,但我的助手project_do_path(project)
会生成/projects/1234/do/do
1)为什么如何摆脱第二个do
2)我可以将其配置为在帮助程序中包含操作吗?
我已阅读http://guides.rubyonrails.org/routing.html#route-globbing-and-wildcard-segments
但它没有谈到通配符部分中的帮助程序。
感谢和最好的问候
答案 0 :(得分:2)
拥有以下路线
resources :blog, only: [:index, :show] do
patch 'do/*do_action', to: 'rsvps#index', as: :do
end
给我以下网址
blog_do PATCH /blog/:blog_id/do/*do_action(.:format) rsvps#index
blog_index GET /blog(.:format) blog#index
blog GET /blog/:id(.:format) blog#show
blog_do_path
现在需要2个参数
blog_do_path(project, 'asd')
然后在您的控制器操作中,params[:do_action]
将为'asd'