Rails似乎使用“ button_to”帮助程序和“获取”方法删除URL中的查询参数

时间:2018-07-06 12:52:04

标签: ruby-on-rails ruby haml

我在视图中显示了一个项目列表,每个项目都有一个“删除”按钮。当按下按钮时,我想使用url查询中的from . import config 参数来调用同一页面。我的按钮如下所示:

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?

编辑:使用“ button_to”助手中的某些参数调用主页时,我的行为相同。

我想念什么?

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

delete_id

,而不是登陆:

<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?

2 个答案:

答案 0 :(得分:1)

我建议您将params: { }的末尾添加button_to到包含http_options的括号中,它将生成包含值的hidden_field

 params: { :delete_id => saved_search.id }

答案 1 :(得分:0)

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

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

将此添加到表单中和按钮上方。

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