回答
你需要實現取決於當你調用Ruby代碼或功能
難道是在創建或渲染頁面或JS嗎?
然後你可以使用帶有.erb擴展名的js(如超級工程師建議的) 這允許你調用視圖和應用程序助手中可用的任何ruby代碼和函數。
如demo.js.erb
var arr = "<%= call_function %>"
你需要從客戶端的功能? 然後就不可能直接調用這個函數,你需要爲這樣的場景使用ajax。 (如Spernsky Danil所建議)
我知道我正在振興一條舊線索。你寫了<%= call_function%>這個call_function在哪裏?假設我想要調用一個控制器方法,我該怎麼做? – 2013-09-11 20:01:17
@ MaxRose-Collins它可以是任何可以通過視圖訪問的有效函數,可以在助手或任何地方,但應該可以在視圖中訪問 – PriteshJ 2013-09-12 06:56:16
好吧,如果我在application_helper中有助手,我可以從js.erb文件位於assets/javascripts?像這樣,var response ='<%= solve()%>' – 2013-09-12 07:40:49
我認爲這是不可能的,有幾個原因:
- 瀏覽器不支持Ruby的
- 的JavaScript和Ruby具有的不同類型系統我不知道他們之間 任何接口
- 你也不能把JavaScript代碼和Ruby代碼在一個文件中,因爲有這樣的文件
所以沒有MIME類型,我想你應該你的Ruby功能轉換爲JavaScript的FUNC它在。
或者您可以將您的Ruby功能作爲Server API的一部分實現,並通過Ajax從JavaScript調用它。
JavaScript是客戶端語言,Ruby是服務器端語言,他們不能直接調用對方,而是使用AJAX或WS代替服務器和客戶端之間的通信。
你可以在服務器(node.js)和客戶端上的紅寶石(如果客戶端是一個獨立的應用程序,而不是網絡瀏覽器)::) – 2012-07-27 07:21:14
即使這樣你不能從另一端調用函數,而不使用tcp/IP通信,仍然有趣,巨魔? – micnic 2012-07-27 07:38:37
那麼你可以有js.erb文件。您可以在其中包含Ruby代碼。只要看看我的項目中的代碼片段即可。
$("#myModal").modal('hide');
<% if @status == "ok" %>
<%= add_gritter("We will contact you as soon as possible!", :image => :success, :class_name => "gritter-light") %>
<% else %>
<%= add_gritter("Something went wrong while saving you request. Please try again!", :image => :error, :class_name => "gritter-light") %>
<% end %>
- 1. 調用Java腳本函數
- 2. 從matlab腳本調用java函數
- 3. 從python腳本中調用java函數
- 4. 從Java腳本調用Applet函數
- 5. Selenium java調用java腳本函數
- 6. 如何從Html Helper Class的腳本函數調用Java腳本函數?
- 7. Ruby腳本中的Java構造函數
- 8. Java腳本未調用函數
- 9. 在JAVA腳本函數中調用的ASP經典函數
- 10. 從GridView以<% Eval("")%>作爲函數參數調用java腳本函數?
- 11. Powershell腳本調用函數
- 12. 調用腳本函數
- 13. 從DTrace腳本調用C函數
- 14. 從另一個腳本調用函數?
- 15. 從腳本內嵌調用INSERT函數
- 16. 從bash腳本調用python函數
- 17. 從shell腳本中調用python函數
- 18. 從遠程腳本塊調用函數
- 19. 從lua腳本中調用c函數
- 20. Plone從login_next腳本調用python函數
- 21. 從動作腳本調用JavaScript函數
- 22. 從動作腳本調用ExtJS函數
- 23. C# - 從其他腳本調用函數
- 24. 從actionscript腳本中調用javascript函數
- 25. 從JavaScript腳本調用php函數
- 26. 從腳本中較高的函數調用較低的函數
- 27. 單獨的回調函數java腳本
- 28. 如何從Java腳本中的另一個函數調用函數
- 29. 如何調用Java腳本函數從用戶控制
- 30. 使用ScriptEngine從Java調用自定義腳本函數
Javascript是瀏覽器(客戶端)上的運行時環境。我假設你的服務器端環境是Rails,它是一個不同的運行環境(服務器端)。客戶端使用HTTP協議向服務器端發出請求。當你說「從JavaScript函數調用ruby」時,你基本上想要做的就是「通過瀏覽器進行AJAX調用,以便在服務器端執行數據庫操作」。一旦你瞭解這種互動,你將能夠搜索正確的地方,並得到適當的相關答案恕我直言。 – 2012-07-27 08:18:24