如果我有以下javascript代码
var myVar = 0;
function setNewValforVar(newValue){
myVar = newValue;
}
我打电话setNewValforVar
函数n
次
因此,当我点击某个链接时,它会将myVar
值发送到远程链接中的控制器操作,例如
<%=link_to "My Link",{:action=>"myAction"},:data=>''sval='+myVar',:remote=>true%>
I Rails 2.3.x我会用
执行此操作<%=link_to_remote "My Link",:url=>{:action=>"myAction"},:with=>"'sval='+myVar"%>
我正在使用
控制器的操作params["myVar"]
如何使用link_to
帮助程序在Rails 3上执行此操作?
答案 0 :(得分:4)
Rails 3不再支持此行为。您必须创建表单以提交值,或修改链接的href
以将值包括在查询字符串中。
答案 1 :(得分:3)
我找到了一些使用回调的解决方案。必须以某种方式标记链接,例如添加id
:
<%=link_to "My Link", {:action=>"myAction"}, :remote=>true, :id => "mylink" %>
prototype_ujs
有一个示例:参数只是附加到请求的URL(代码有点简化我假设某些参数已经存在)。
<%= javascript_tag("document.on('ajax:create', 'a#mylink',
function(event) { event.memo.request.url += '&sval=' + myVar; })") %>
这个(丑陋的)解决方案的一些优点是可以为特定类别的链接使用一个函数而不是指示的id。