Ruby on rails 如何在页面加载后运行Twitter gem

Ruby on rails 如何在页面加载后运行Twitter gem,ruby-on-rails,ajax,twitter,Ruby On Rails,Ajax,Twitter,我正在使用,但是我希望了解如何在页面加载后在后台运行它 目前我需要等待页面呈现,因为gem正在查询一些tweet。一旦gem得到响应,页面就会加载 然而,我希望在我的Twitter提要“div”标记中显示一个“加载”GIF,一旦检索到Twitter信息,就用相应的内容替换这个GIF 我读了几篇关于如何使用表单和表单上的“:remote=>true”标记来进行AJAX调用的文章,这些调用不会重新加载相应的页面,但我不想强迫访问者单击链接以查看推特推文 我正在使用: Ruby版本:1.8.7 Ra

我正在使用,但是我希望了解如何在页面加载后在后台运行它

目前我需要等待页面呈现,因为gem正在查询一些tweet。一旦gem得到响应,页面就会加载

然而,我希望在我的Twitter提要“div”标记中显示一个“加载”GIF,一旦检索到Twitter信息,就用相应的内容替换这个GIF

我读了几篇关于如何使用表单和表单上的“
:remote=>true
”标记来进行AJAX调用的文章,这些调用不会重新加载相应的页面,但我不想强迫访问者单击链接以查看推特推文

我正在使用:

  • Ruby版本:1.8.7
  • Rails版本:3.0.9

    • 有多种方法可以做到这一点;一种相当常见的做法,我将使用jQuery的
      $.ajax()
      从服务器获取数据并更新页面

      客户端:

    • 正常加载页面并显示某种加载指示器

    • 调用
      $.ajax()


      谢谢你的回复!正如我在描述中提到的,我对RoR真的很生疏。控制器的“显示”逻辑是什么?另外,我是否将客户端AJAX代码放在application.js文件中?除了实现所有这些,我还尝试在客户机和服务器代码之间连接众所周知的点。再次感谢!!AJAX调用点的“URL”部分是否会激活控制器中的“show”方法,即routes.rb文件将包含来自user/tweets=>tweets的“匹配”#show?“show”对应于使用RESTful路由的GET操作。AJAX的URL部分可以指向任何东西,只要您有一个响应它的路由设置。运行
      rake routes
      查看应用程序使用的路由列表,或使用
      curl[URL]
      查看URL返回的内容。感谢您的精彩反馈!然而,我想我被卡住了。我在日志中注意到如何调用控制器的方法,在您的示例中是“show”,但从未调用AJAX函数中的“success”设置逻辑。作为测试,我在“$('#加载指示器').hide();”行之前的“成功”设置“打开括号”之后添加了行“警报('我在AJAX调用中');”,并且没有出现警报框。我确保AJAX调用调用的函数返回“render:json=>@tweets”,并且@tweets只是被分配了一个字符串,用于测试目的。为了进一步调试,我在AJAX调用中添加了一个错误函数。似乎我得到了一个“parseError”,原因是“意外令牌非法”。我如何解决这个问题?正如我前面提到的,我的方法只是在“render:json=>@tweets”行之前为“@tweets”变量分配一个“字符串”
      $.ajax({
        type: "GET",
        url: userId + '/tweets', // i.e. tweets is a nested resource of user
        success: function(tweets){
          $('#loading_indicator').hide();
      
          // Use the tweets that are returned to update the DOM
          $.each(tweets, function(ndx, tweet) {
            $('#tweet_list').append('<li>'+tweet.body+<'/li'>);
          });
        }
      });
      
      class TweetsController < ApplicationController
      
        def show
          # collect tweets...
          render :json => @tweets
        end
      
      end