将javascript变量发送到rails?

Ari*_*iel 6 javascript ajax ruby-on-rails

我需要将一个javascript变量播种到控制器.例如,如果视图中的代码如下 -

    ...  <script type="text/javascript">
           variable_test = 'hello'
         </script> 
    ...
Run Code Online (Sandbox Code Playgroud)

我需要控制器来获取variable_test,如 -

 def hello
 @variable_test = #Some code
 # @variable_test => 'hello'
 end
Run Code Online (Sandbox Code Playgroud)

这个视图当然是你好,而且"一些代码"是我不知道该怎么做的.

Rus*_*rry 4

除非您执行某种获取或发布操作,否则您无法将客户端代码发送到控制器。尝试使用 jQuery 的 post 或 get 方法。如果你不使用 jQuery 那么你可以这样做:

var variable_test = 'hello';
var el = document.createElement('script');
el.setAttribute('src', 'path_to_controller' + '?variable_test=' + variable_test);
document.body.appendChild(el);
Run Code Online (Sandbox Code Playgroud)

然后在你的控制器中你会这样做:

@varliable_test = params[:varliable_test]
Run Code Online (Sandbox Code Playgroud)

语法可能有点偏差,但您已经了解了总体思路。