如何在链接/ button_to_remote调用上发送额外参数?

时间:2009-05-11 01:32:47

标签: ruby-on-rails ajax prototypejs

Prototype的Ajax接受一个名为'parameters'的参数,其参数(prototype doc)的哈希数组会自动作为GET或POST变量发送,但是我找不到如何使用Rails button_to_remote方法。

我可以将参数添加到发送给该方法的URL中,但这感觉很乱。那里有更好的解决方案吗?

3 个答案:

答案 0 :(得分:3)

我实际上找到了解决方案!您可以使用:with选项传递函数中的参数,如下所示:

<%=button_to_remote "+3", {:url =>task_path(@project, @story, task), :with=>"'actual=3'"}%>

诀窍是:with的值是一个javascript表达式,应该返回URL格式的键值对,如“key = value”。这就是为什么在上面的值附近有额外的报价。

如有必要,还可以使用函数从页面中提取信息:

:with=>"getValuesForPostbackFunction()" 

在提交表单之前将评估该函数。

答案 1 :(得分:1)

使用button_to_remote将参数发送到下一个操作的唯一方法是将它们放入URI中。

button_to_remote旨在作为link_to_remote的功能等效物,它也没有其他添加参数的方法。

如果您需要更细粒度的控制,则需要构建完整的表单并将其提交给您的操作。

答案 2 :(得分:0)

在您调用button_to_remote的表单中添加隐藏的输入字段。

<input type="hidden" name="name" value="myValue">