将javascript变量分配给ruby变量

时间:2012-08-22 06:15:18

标签: javascript ruby

我正在处理一个已从websocket调用的脚本。这页代码是html.erb

它将变量传递给javascript,并从该javascript变量我想将其分配给ruby变量,

这是代码

function set_color(val1,val2)
{

  <%background_color_id = %>
  var obj_color_id = '<%=background_color_id ='+val2+'%>' ;
  console.log(obj_color_id)
 }

控制台日志的结果是+val2+

如果我通过var obj_color_id = '<%=background_color_id ='val2'%>' ;

控制台日志的结果是val2

请帮我分配javascript变量到ruby变量

3 个答案:

答案 0 :(得分:3)

你不能这样做。 Javascript运行客户端,Ruby运行服务器端。

答案 1 :(得分:1)

你做不到。所有值<%=都在服务器端进行转换,并将其值发送给客户端。客户端没有红宝石。您必须向websocket或http服务器发送请求才能将一些数据传递给服务器。

答案 2 :(得分:0)

实际上,如果我理解你的代码(不幸的是你的问题没有很好地表达),那么简单的解决方案就是:

1-通过服务器端代码分配值:

function set_color(val1,val2)
{
  var bkgdColorId = "<%= background_color_id %>";
  var obj_color_id = bkgdColorId;
  console.log(obj_color_id)
}

2-(或),从客户端代码中分配值:

function set_color(val1,val2)
{
  /** pseudo-code **/
  on-click-event: makeAjaxCallToServer(){
    urlForWebService, { color: val2 }
  }
}

使用一些jQuery(如果从客户端事件分配给服务器)将极大地促进此过程。