我正在使用Sinatra,Ruby,HAML和JavaScript
所以我想出了如何在HAML JavaScript中调用ruby函数
@@layout
%html
%head
%title #{@title}
:javascript
var retval
function diff_by_company_id() {
retval = "#{ruby_function()}";
}
但是我现在需要传递一个javascript变量的ruby函数,我不知道怎么做。 这是我试过的,显然不起作用。
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,它传入字符串输入。
所以我得到的是:retval = Output Number: input!
我想要的是:retval = Output Number: 1!
任何有关如何正确传递此信息的帮助都将不胜感激。
答案 0 :(得分:3)
Ruby在服务器端执行,javascript在客户端执行。现在这样做的原因是在加载页面时执行ruby代码。
如果不向服务器发出AJAX请求,则无法“将javascript变量传递给ruby”。