【发布时间】:2011-05-28 03:29:57
【问题描述】:
我正在使用 Pusher 向我的 Rails 应用程序添加实时页面更新。
以下是 Pusher 工作原理的简要概述(稍后我将向您展示我希望它做什么):
控制器:
class ThingsController < ApplicationController
def create
@thing = Thing.new(params[:thing])
if @thing.save
Pusher['things'].trigger('thing-create', @thing.attributes)
end
end
end
Javascript(在<head>...</head>):
var pusher = new Pusher('API_KEY');
var myChannel = pusher.subscribe('MY_CHANNEL');
myChannel.bind('thing-create', function(thing) {
alert('A thing was created: ' + thing.name); // I want to replace this line
});
我想用 ajax 请求替换注释行以触发一些不显眼的 JavaScript。假设我有文件 app/views/things/index.js.erb:
$("things").update("<%= escape_javascript(render(@things))%>");
我应该在myChannel.bind回调中写什么来触发上面的代码执行?
【问题讨论】:
-
您是否正在通过 AJAX 创建
Thing?还是只是一个标准的 HTTP 请求? -
嘿,在阅读了你的多个问题后,我刚刚完成了这个,并为你写了一个答案。检查我在下面发布的答案。谢谢。
-
谢谢@joel,稍后我会看看并发表评论。
标签: ruby-on-rails jquery real-time unobtrusive-javascript