5

如果我有以下 javascript 代码

var myVar = 0;

function setNewValforVar(newValue){
    myVar = newValue;
}

我正在调用setNewValforVar函数n时间

所以当我点击一个链接时,它会将myVar值发送到远程链接中的控制器操作,比如

<%=link_to "My Link",{:action=>"myAction"},:data=>''sval='+myVar',:remote=>true%>

我 Rails 2.3.x 我会这样做

<%=link_to_remote "My Link",:url=>{:action=>"myAction"},:with=>"'sval='+myVar"%>

我在控制器的动作中得到了这个

params["myVar"]

我如何使用link_to助手在 Rails 3 上执行此操作?

4

2 回答 2

4

Rails 3 不再支持这种行为。您必须创建一个表单来提交值,或者修改href链接以将值包含在查询字符串中。

于 2011-05-03T20:57:40.640 回答
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。

于 2012-02-02T16:08:37.653 回答