在rails中将第二个参数添加到URL

时间:2016-09-20 19:56:26

标签: ruby-on-rails ruby

我正在尝试向URL添加第二个参数(并且仍然保留第一个参数)。例如,我有网址/商店?排序=按字母顺序排列,并希望添加参数currency = CAD

%form{action: shops_path(params.merge!({currency: params[:currency]}))}
    .input-group
      = select_tag 'currency', options_for_select({'USA' => 'USD' , 'Canada' => 'CAD'}, params[:currency]), class: 'select2'

在上面的代码中,参数刚刚被替换,例如我得到/ shop?currency = CAD而不是/ shops?sorting =按字母顺序排列& currency = CAD 我做错了什么?

2 个答案:

答案 0 :(得分:0)

%form{action: shops_path(sorting: 'alphabetically', currency: 'CAD')}

在向路径助手提供params时,无需合并params哈希!

答案 1 :(得分:0)

改为使用hidden_field_tag

= form_tag shops_path do
  .input-group
    = select_tag 'currency', options_for_select({'USA' => 'USD' , 'Canada' => 'CAD'}, params[:currency]), class: 'select2'
    = hidden_field_tag :sorting, params[:sorting] 

希望有所帮助!