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