簡體   English   中英

將變量從Ruby傳遞到JavaScript

[英]Passing variable from Ruby to JavaScript

我正在Sinatra網站上進行短信驗證功能。 我得到了以下代碼:

post '/coop/sendcode' do
  @code = Random.rand(1000..9999).to_s
  phone = params[:phone].to_s
  HTTParty.get('http://sms.ru/sms/send?api_id=' + api_id + '&to=' + phone + '&text=' + @code)
end

和這個觀點:

%form
  %div.form-group
    %label Phone
    %input#phone.form-control{:name => "phone", :placeholder => "7 950 123 45 67"}
  %button#sendsms.btn.btn-default{"data-toggle" => "modal", "data-target" => "#myModal"} Send

而這個JS:

  $(document).ready(function(){
    $("#sendsms").click(function(){
      var phone = $("#phone").val();
      $.ajax({
        url: "/coop/sendcode",
        data: {"phone": phone},
        type: "post"
      });
    });
    $("#checkcode").click(function(){
      var serversCode = @code
      var usersCode = $("#code").val();
      if (serversCode == usersCode) {
        console.log("good: srv - " + serversCode + ", usr - " + usersCode);
      } else {
        console.log("bad: srv - " + serversCode + ", usr - " + usersCode);
      }
    });
  });

用戶鍵入電話號碼后,他按“ 發送”按鈕,這將打開模式窗口(帶有button#checkcode ),從中可以從短信中輸入驗證碼。 但是此代碼不起作用,主要問題是如何將@code變量從Ruby傳遞給JS?

先感謝您。

嘗試使用此gem: https//github.com/gazay/gon-sinatra

它將允許您像下面這樣在控制器中設置代碼:

gon.code = @code

並以類似的方式在javascript中訪問它:

var serversCode = gon.code

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM