0

我需要一个路由来接受reports#show带有附加:query参数的请求,但我不知道如何编写它。在我看来,它需要响应这个链接:

= link_to report_path(query: params[:query]) do

配置/路由.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,但我会在这一点上采用任何可行的方法。谢谢你的帮助。

4

2 回答 2

1

我在这里遇到了同样的问题,我default在定义路线时使用参数解决了它。

get :twitter_form, defaults: { form: "twitter" }, as: :twitter_form, to: "campaigns#show"

于 2014-09-12T12:10:04.343 回答
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)
于 2012-09-21T07:18:29.433 回答