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 "test jamais"" 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&price_min=0&update_frequency=weekly">
<input class="button run_search_button" type="submit" value="Lancer">
</form>
而不是登陆 :
/fr/homepage?price_max=9271&price_min=0&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
我在视图中显示了一个项目列表,每个项目都有一个 "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 "test jamais"" 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&price_min=0&update_frequency=weekly">
<input class="button run_search_button" type="submit" value="Lancer">
</form>
而不是登陆 :
/fr/homepage?price_max=9271&price_min=0&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