Rails3 - 如何使用 link_to 帮助程序将 Javascript 变量发送到控制器的操作?
如果我有以下 JavaScript 代码
var myVar = 0;
function setNewValforVar(newValue){
myVar = newValue;
}
,并且调用 setNewValforVar
函数 n
次,
那么当我单击链接时,它会发送 myVar
值到像 Rails 2.3.x 这样的远程链接中的控制器操作,
<%=link_to "My Link",{:action=>"myAction"},:data=>''sval='+myVar',:remote=>true%>
我会这样做
<%=link_to_remote "My Link",:url=>{:action=>"myAction"},:with=>"'sval='+myVar"%>
,并且我在控制器的操作上得到了这个,
params["myVar"]
如何使用 link_to
帮助程序在 Rails 3 上执行此操作?
If i have the following javascript code
var myVar = 0;
function setNewValforVar(newValue){
myVar = newValue;
}
and i'm calling setNewValforVar
function n
times
so when I click on a link it'd send myVar
value to the controller action in a remote link like
<%=link_to "My Link",{:action=>"myAction"},:data=>''sval='+myVar',:remote=>true%>
I Rails 2.3.x I'd do this with
<%=link_to_remote "My Link",:url=>{:action=>"myAction"},:with=>"'sval='+myVar"%>
and i was getting this on the controller's action with
params["myVar"]
how do I do this on Rails 3 with the link_to
helper?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Rails 3 不再支持这种行为。您必须创建一个表单来提交该值,或者修改链接的
href
以将该值包含在查询字符串中。Rails 3 no longer supports this behavior. You will have to either create a form to submit the value, or modify the
href
of the link to include the value in the query string.我找到了一些使用回调的解决方案。链接必须以某种方式标记,例如通过添加
id
:有一个
prototype_ujs
的示例:参数简单地附加到请求的 URL 上(代码是有点简化,我假设一些参数已经存在)。这个(有点难看)解决方案的一些优点是可以对特定类别的链接使用一个函数而不是指示的 id。
I found some solution that use callbacks. Link must be marked in some way, for example by adding the
id
:There is an example for
prototype_ujs
: the parameter is simply appended to the request's URL (the code is a bit simplified I assume that some parameters already exist).Some advantage of this (ugly a bit) solution is the possibility of using one function for a particular class of links instead of the indicated id.