我写了一个ruby函数,想把它放在js文件中,js函数应该能够调用ruby函数并存储返回值。
是否可以?这个任务怎么做?
我写了一个ruby函数,想把它放在js文件中,js函数应该能够调用ruby函数并存储返回值。
是否可以?这个任务怎么做?
我认为不可能,有几个原因:
所以我想你应该将你的 Ruby 函数转换为 JavaScript 函数。
或者,您可以将 Ruby 函数实现为服务器 API 的一部分,并通过 Ajax 从 JavaScript 调用它。
您需要的实现取决于您何时调用 ruby 代码或函数
是在构建或渲染页面或 js 时?
然后你可以使用带有 .erb 扩展名的 js。(正如超级工程师所建议的那样)这允许你调用视图和应用程序助手中可用的任何 ruby 代码和函数。
例如 demo.js.erb
var arr = "<%= call_function %>"
您需要客户端的功能吗?那么直接调用函数是不可能的,这种场景需要使用ajax。(由 Spernsky Daniel 建议)
JavaScript 是客户端语言,Ruby 是服务器端语言,它们不能直接相互调用,使用 AJAX 或 WS 代替服务器端和客户端之间的通信。
那么你可以有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 %>