0

Sinatra、Ruby、HAML、および JavaScript を使用しています

そこで、HAML JavaScript で 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")}";
              }

入力の値 1 を渡す代わりに、文字列入力を渡します。

だから私が得るものは次のとおりです:retval = Output Number: input!

私が欲しいのは: retval = Output Number: 1!

これを正しく渡す方法についての助けをいただければ幸いです。

4

1 に答える 1

3

Ruby はサーバー側で実行され、JavaScript はクライアント側で実行されます。これが現在機能している理由は、ページが読み込まれたときに ruby​​ コードが実行されるためです。

サーバーにAJAXリクエストを行わずに「javascript変数をrubyに渡す」ことはできません。

于 2013-07-18T20:20:37.410 に答える