在 Rails 中发送带有link_to的表单参数

Send a form parameter with link_to in Rails

本文关键字:to 表单 参数 link Rails      更新时间:2023-09-26

我有一个结帐表单,其中包含一个位置选择字段,该字段调用自定义操作,该操作通过javascript使用正确的交付金额更新页面。

=link_to 'Update delivery', store_orders_delivery_path(?????),
 method: 'POST', remote: :true

表单具有"位置"字段

= f.select :location, ["country1","country2","country3"]

如何将所选位置作为参数发送到我的link_to?

我理解你的问题的方式是:

您有一个表单,该表单在提交时会执行一些操作。在此表单中,您希望有一个链接,该链接将仅将此表单中的一个字段发送到另一个操作,并获得一些 js 作为更新表单的响应。

如果是这样,正确的方法是在更改所选位置时发送 ajax 请求。然后不需要链接,您将创造更好的用户体验。从事件处理程序中,您可以轻松访问所选值并将其与请求一起发送。

更新:

简而言之,我会做的事情:

  1. 摆脱此链接。
  2. 使用 javascript(推荐 CoffeScript)为此选择字段创建一个事件处理程序 (jQuery: $('#<modelname>_location').change(function() {handler here})
  3. 在处理程序中,从字段 ( selected_value = $(this).find('option:selected').val() ) 中获取值(或末尾的 value(),总是把这两个弄乱了)
  4. 通过 js 和 selected_value 发送 ajax 请求。(http://api.jquery.com/jQuery.ajax/)

这不是很多代码要写,但应该做你想做的事+它将节省用户一次点击(他可能没有意识到这是需要的,感到困惑等)

它应该已经在您的控制器中可用,如:

params[:location]

= f.select :location, options_for_select(["country1","country2","country3"]), params[:location]