问题 Rails:附加URL参数和删除URL参数


编辑: See below unanswered part II.

(ANSWERED) 一世。 附加URL

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

users_path(:a => 'test')

以上将返回: ?a=test

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

users_path(:b => 'goat')

让它回来 ?a=test&b=goat

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

(无解答) II。 删除参数

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

(ANSWERED) III。 删除 page 参数

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


2476
2017-08-02 18:02


起源

使用会话不是我假设的选项吗? - M. Cypher
那是对的。 - stewart715


答案:


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

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

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

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

至于你问题的第二部分,你可能想要扩展传入 params 进入一系列复选框,其名称和值设置得恰当。禁用复选框并提交表单将导致从请求中删除该参数。

去除 :page 参数,将其添加到您的助手:

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


10
2017-08-02 18:09



有趣的是:你有什么建议没有通过 per_page 参数?我希望分页在选择新参数时重置。 - stewart715
params.except(:per_page).merge(附加的) - M. Cypher
感谢您的帮助 - 我认为复选框解决方案是最好的,但有没有办法删除带链接的参数? - stewart715
您无法使用链接从链接中删除某些内容。我的意思是制作一个提交的表格 method='GET' 相反,把它变成各种各样的链接。 - tadman
嗯,考虑到我正在使用AJAX,这可能会很棘手,但我会调查一下,谢谢! - stewart715


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

users_path(request.query_parameters.merge(:b => 'goat'))

0
2018-04-01 12:33