2

我的 application.html.erb [查看文件] 中有一个 javascript 代码块,它接收来自外部 api 的事件。我想做的就是当在javascript代码块中收到事件时,我需要在[application_helper.rb]中执行一个辅助方法。

我已经浏览了这里的大部分堆栈,但找不到任何相关的答案。

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")
});
4

1 回答 1

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")
});
于 2012-04-22T01:38:31.570 回答