回答
你需要实现取决于当你调用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