带有查询参数的获取请求的Rails路由

时间:2012-09-21 06:59:46

标签: ruby-on-rails ruby-on-rails-3 routes restful-url

我需要一个接受带有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,但我会采取任何有效的方法。谢谢你的帮助。

2 个答案:

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