在rails中发送Javascript请求

时间:2010-01-02 15:07:23

标签: jquery ruby-on-rails

我试图建立一个系统,通知用户任何新的私人消息,消息控制器的索引方法创建@messages和@newmessages的实例变量,两者都在index.html.erb中使用,我想使它成为index.js.erb使我的网站上的flash消息框出现。

我每隔几秒就有一个jquery运行一个函数,运行的函数是

function checkagain(){
 //Start a Timer, dont want it bombarding the server with constant requests
 $.timer(10000,function(){
  $.getScript("/messages.js");
  //RECURSE, see you again in 10 seconds
  checkagain();
 });
}

$。getScript似乎没有让它在index.js.erb上运行代码,这只是:

alert("RESPONDING");

我似乎无法触发该页面上的代码。

我发现/messages.js没有返回任何javascript,与index.html.erb相同

控制器的索引操作是:

def index
    @messages = Message.find(:all, :conditions => "receiver_id = '#{current_user.id}' AND `read` = '1'")
    @newmessages = Message.find(:all, :conditions => "receiver_id = '#{current_user.id}' AND `read` = '0'")
end

3 个答案:

答案 0 :(得分:0)

尝试附加随机查询字符串以强制浏览器重新下载js文件:

$.getScript("/messages.js?random=" + Math.random());

答案 1 :(得分:0)

您可以在消息控制器的索引操作中发布一些代码吗?如果messages.js没有返回您期望的javascript,这似乎不是一个jquery问题。

您是否有应该返回该警报调用的message / index.js.erb视图,或者您的公共目录中是否有某个messages.js文件?

答案 2 :(得分:0)

您可以查看Juggernaut,这样您就可以使用Flash 8资源推送到客户端浏览器。

相关问题