rails 似乎使用 'button_to' 帮助器和 'get' 方法删除了 URL 中的查询参数

rails seems to delete query params in URL with 'button_to' helper and 'get' method

我在视图中显示了一个项目列表,每个项目都有一个 "delete" 按钮。按下按钮时,我想在 url 查询中使用 delete_id 参数调用同一页面。我的按钮看起来像这样:

 =button_to t("settings.saved_searches.delete_button"), saved_searches_person_settings_path(:delete_id => saved_search.id), {method: :get ,class:"button delete_search_button", confirm: t("settings.saved_searches.confirm_delete",search_name:saved_search.name)}

它似乎生成了我想要的东西:

<form class="button_to" method="get" action="/fr/liteultom/settings/saved_searches?delete_id=5">
  <input class="button delete_search_button" confirm="Êtes-vous certain de vouloir supprimer la recherche &quot;test jamais&quot;" type="submit" value="Delete">
</form>

但是当我按下它时,它会把我送回路径 /fr/liteultom/settings/saved_searches? ,没有 delete_id 参数。

编辑:使用 "button_to" 助手的一些参数调用我的主页时,我有相同的行为。

我错过了什么?

编辑 2: 这是单击此按钮时服务器日志的示例:

<form class="button_to" method="get" action="/fr/homepage?price_max=9271&amp;price_min=0&amp;update_frequency=weekly">
  <input class="button run_search_button" type="submit" value="Lancer">
</form>

而不是登陆 :

/fr/homepage?price_max=9271&amp;price_min=0&amp;update_frequency=weekly

我降落在:/fr/homepage?

日志:

16:08:03 rails.1               | 127.0.0.1 - - [06/Jul/2018:16:07:54 CEST] "GET /fr/homepage? HTTP/1.1" 200 15015
16:08:03 rails.1               | http://my.server.me:5000/fr/liteultom/settings/saved_searches -> /fr/homepage?

我建议你在 button_to 的末尾添加 params: { } 在 http_options 的大括号内,它会生成包含值的 hidden_field

 params: { :delete_id => saved_search.id }</pre>

我想添加一个建议,以防这可能对其他人有所帮助,以上答案确实帮助我更接近解决我的问题,但还不够。

我需要通过提交按钮发送一个 id 作为参数,所以我将参数添加到我的控制器,然后在正上方添加了一个隐藏字段。

将其添加到您的表单内和按钮上方。

= f.hidden_field :params, value: params.id