我的application.html.erb [查看文件]中有一个javascript代码块,它接收来自外部api的事件。我想要做的就是当在javascript代码块中收到事件时,我需要在[application_helper.rb]中执行一个帮助方法。
我在这里经历了大部分的te栈,但找不到任何相关的答案。
javascript代码块如下所示:
var pusher = new Pusher('b00c9657a0a896f3ec26');
var channel = pusher.subscribe('NewOrders');
channel.bind('NewOrderArrived', function(data) {
[ I NEED TO CALL THE RAILS HELPER METHOD HERE ]
console.log("got u")
});
答案 0 :(得分:1)
不直接,不。正如Dave Newton在评论中所说,Ruby在服务器上执行,JS在客户端上执行。你想要做的是这样的事情:
var pusher = new Pusher('b00c9657a0a896f3ec26');
var channel = pusher.subscribe('NewOrders');
channel.bind('NewOrderArrived', function(data) {
$.get('<%= url_for :some_controller_method_that_calls_helper %>', function(response){
// the response variable will contain the output of the controller method
});
console.log("got u")
});