如何在JavaScript中修改Rails脚本中的全局变量?

我在我的Rails控制器中定义了以下变量:

$PATH 

在JavaScript中我想更改此变量的值:

  $("#resetDefaults").click(function(){ $PATH = '3'; //try 1  = '3'; // try 2 });  

我已经尝试了上述两种说法,但无法弄清楚如何做到这一点。

全局变量仅在服务器上执行的Ruby代码中是全局变量。

您正在浏览器中运行JavaScript代码。 该代码无法直接访问服务器上的变量。

如果您希望更改服务器上的某个状态(变量),则需要从JavaScript代码中调用Rails控制器方法。 即,您需要从浏览器对服务器进行AJAX调用。 像这样的东西:

 $("#resetDefaults").click(function() { $.ajax({ url: "<%= url_for(:action => 'update_path_var') %>" }); return false; }); 

然后在控制器中你有类似的东西:

 def update_path_var $PATH = 1234 render :nothing => true end 

http://api.jquery.com/jQuery.ajax/
http://apidock.com/rails/ActionController/Base/url_for

BTW,通常在Ruby中使用全局变量不被认为是良好的编码实践,除非有一些非常具体的原因。

没有办法实现这一目标。 我想你应该对网络编程课程做一些介绍。