如何与之前的请求中的params hash的特定部分建立链接?

时间:2012-03-09 05:23:31

标签: ruby-on-rails ruby haml params link-to

虽然我通常不会创建这样的页面,但请知道这是一个我无法改变的当前约束。

该页面有一个复选框表单以及一个表格,其中包含用于对表格进行排序的TH的链接。我需要以保留已经检查过的复选框项的方式构造TH链接。

使用Haml在View中构建的复选框为:

= form_tag movies_path, :method => :get do
Include: 
  - @all_ratings.each do |rating|
    = rating
    = check_box_tag "ratings[#{rating}]", "1", (@ratingsarray.include?(rating) ? true : false)
  = hidden_field_tag 'sort', @sort
  = submit_tag 'Refresh'

然后对于表来说,这是TH


%th{:class => @classrelease_date}  
  %a#release_date_header= link_to "Release Date", movies_path(:sort=>'release_date', :params[:ratings]=>params[:ratings])

最终,我想要像“/ moves /?sort = release_date& Ratings [PG] = 1& Ratings [G] = 1”这样的网址,其中我将评级参数传回页面作为网址的一部分。或者如何在现有控制器代码将读取它的页面的任何部分传递评级参数。

复选框中的现有控制器代码访问评级:

params[:ratings]

1 个答案:

答案 0 :(得分:2)

由于movies_path接受hash作为参数,因此您可以定制params,然后使用movies_path(params)生成URL。通常,您可能需要从params中删除“controller”和“action”。