【问题标题】:is it possible to call a rails helper method from within javascript?是否可以从 javascript 中调用 rails helper 方法?
【发布时间】:2012-05-03 02:45:18
【问题描述】:

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

【问题讨论】:

  • JavaScript 在客户端执行,Ruby 在服务器上执行。使用服务器端构建你想要的JS,或者使用Ajax。

标签: javascript ruby-on-rails helper


【解决方案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")
});

【讨论】:

  • 非常感谢您的回答,这似乎对我有限制,应该有一个解决方法,如果我需要根据java脚本事件处理控制器内部的一些信息怎么办?
  • 您要么只需要使用 Javascript 来处理它,要么需要使用 AJAX - 这正是网络的本质。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多