Rails:附加网址参数&删除网址参数

时间:2011-08-02 18:02:48

标签: ruby-on-rails ruby ruby-on-rails-3

编辑: See below unanswered part II.

(答案) I. 追加网址

我正在尝试使用基本参数指南在我的视图中堆叠参数:

users_path(:a => 'test')

以上内容将返回:?a=test

但是,我希望能够连续点击:

users_path(:b => 'goat')

并让它返回?a=test&b=goat

有关如何堆叠/附加这些网址参数的任何建议吗?

(未回答) II。 删除参数

如果我想在参数设置旁边添加[x]链接,我怎么能删除其各自的参数?

(答案) III。 删除page参数

我想在用户选择参数选项时删除page参数。有没有办法做到这一点?很明显,如果我选择“体育”作为参数类别,例如,分页不应保留在第26页上。

2 个答案:

答案 0 :(得分:10)

如果要附加当前参数,可以尝试:

users_path(params.merge(:b => 'goat'))

您可能想要编写一个帮助您的辅助方法:

def merged_with_current_params(additional)
  params.merge(additional)
end

至于问题的第二部分,您可能希望将传入的params扩展为一系列复选框,其名称和值设置得恰当。禁用复选框并提交表单会产生从请求中删除该参数的效果。

要删除:page参数,请将其添加到您的帮助程序中:

params.except(:page).merge(additional)

答案 1 :(得分:0)

您可以使用request.query_parameters仅使用所需的参数,如下所示:

users_path(request.query_parameters.merge(:b => 'goat'))
相关问题