我需要一个接受带有reports#show
参数的请求:query
的路由,我无法弄清楚如何编写它。它需要在我看来回应这个链接:
= link_to report_path(query: params[:query]) do
配置/ routes.rb中
resources :reports do
resources :chapters
resources :pages
end
尝试了get '/reports/:id/:query', :as => 'reports_query'
的变体,但我一直在:
Routing Error
No route matches {:action=>"show", :controller=>"reports", :query=>"europe"}
项目主要是RESTful,但我会采取任何有效的方法。谢谢你的帮助。
答案 0 :(得分:1)
您应该使用类似
的代码定义要查询的路线# routes.rb
resources :reports do
get ':query', to: 'reports#show', on: :member, as: :query
end
它将生成您可以使用的路径助手
= link_to 'Query Report', query_report_path(@report, query)
答案 1 :(得分:1)
我在这里遇到了同样的问题,我在定义路线时使用default
参数解决了这个问题。
get :twitter_form, defaults: { form: "twitter" }, as: :twitter_form, to: "campaigns#show"