在rails 4中使用通配符路由和url_helpers

时间:2014-08-07 09:37:25

标签: ruby-on-rails routes wildcard form-helpers

我设置了通配符路由 - 但是我无法获得内置帮助程序来生成正确的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但它没有谈到通配符部分中的帮助程序。

感谢和最好的问候

1 个答案:

答案 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'