将javascript变量传递给javascript HAML中的ruby函数调用

passing javascript variable to ruby function call in javascript HAML

本文关键字:javascript 中的 ruby 函数调用 HAML 变量      更新时间:2023-09-26

我正在使用Sinatra、Ruby、HAML和JavaScript

所以我想出了如何在HAMLJavaScript中调用ruby函数

@@layout
%html
    %head
        %title #{@title}
          :javascript
              var retval
              function diff_by_company_id() {
                 retval = "#{ruby_function()}";
              }

然而,我现在需要向ruby函数传递一个javascript变量,我不知道该怎么做。这是我尝试过的,但显然不起作用。

def test(input)
    return "Output Number: "+input.to_s + "!"
end
@@layout
%html
    %head
        %title #{@title}
          :javascript
              var retval
              function diff_by_company_id() {
                 var input = 1;
                 retval = "#{ruby_function("input")}";
              }

它不是传递input的值1,而是传递字符串input。

所以我得到的是:retval = Output Number: input!

我想要的是:retval = Output Number: 1!

如有任何关于如何正确传递此信息的帮助,我们将不胜感激。

Ruby在服务器端执行,javascript在客户端执行。现在这样做的原因是ruby代码是在加载页面时执行的。

如果不向服务器发出AJAX请求,就不可能"将javascript变量传递给ruby"。