繁体   English   中英

在Rails中使用link_to发送表单参数

[英]Send a form parameter with link_to in Rails

我有一个结帐表格,该表格具有用于位置的选择字段,该字段调用一个自定义操作,该操作通过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(),总是selected_value = $(this).find('option:selected').val()两个弄乱了)
  4. 通过js和selected_value一起发送ajax请求。 http://api.jquery.com/jQuery.ajax/

这不是编写很多代码,但是应该做您想做的事情+它可以为用户节省一键(他可能没有意识到这是必需的,会引起困惑等)。

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

params[:location]

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM