2015-05-27 54 views
1

這似乎很簡單,但我無法在任何地方找到針對此問題的直接答案。基本上,我有一個坐在服務器上的JavaScript應用程序,它需要在JS應用程序和基於Rails構建的服務器之間來回傳遞信息。首先,JS應用程序需要告訴服務器執行一個生成所述值的函數,然後它需要一種方法將它們返回給JS應用程序,以便它可以使用它們,並在任何給定的過程中像這樣來回傳遞應用程序的會話。如何在JavaScript上調用服務器上的Ruby方法

有沒有簡單的方法來做到這一點?我意識到阿賈克斯是以某種方式參與的,但我無法弄清楚如何。

+0

JavaScript需要告訴服務器執行的函數只是產生一些整數值。 –

+0

從網頁中,您可以使用Javascript對您的Rails控制器進行Ajax調用。控制器將請求映射到路由和處理請求的ruby代碼。該代碼返回的值將成爲客戶端Javascript接收的Ajax調用的返回值,然後可以執行某些操作。網上有很多關於這個主題的文章。搜索「Javascript Ajax Rails」會產生大量的閱讀材料。這裏有一篇這樣的文章:http://guides.rubyonrails.org/working_with_javascript_in_rails.html – jfriend00

+0

@RyanFaulhaber你的問題與這個問題非常相似[1]。您是否嘗試過在同一個線程中提供的解決方案?只是好奇。此外,Railscasts永遠是您的好朋友[2] [1] http://stackoverflow.com/questions/5933261/how-to-call-a-rails-method-from-in-jquery [ 2] http://railscasts.com/episodes?utf8=%E2%9C%93&search=ajax –

回答

0

你說得對,答案在於ajax。您正在使用jQuery假設,你將需要提交一個請求到服務器,像這樣:

   $.ajax({ 
        type: "GET", 
        url: '/get_info_action', 
        data: {some_data: some_value}, 
        dataType: "script" 
       }); 

確保你選擇的值,URL是建立在你的routes.rb文件。有一個關於這種事情的好Railscast,在學習如何做到這一點時幫了我很大的忙: http://railscasts.com/episodes/136-jquery-ajax-revised

+1

你應該提到你的ajax例子需要jQuery庫。 jQuery可以方便地用於Ajax,但不是必需的。 – jfriend00

+0

@ jfriend00很好,趕上了。自從我寫jQuery調用沒有jQuery以來,我一直都沒有意識到我在做一個假設。 – rockusbacchus

相關問題