Ruby on rails 如何在页面加载后运行Twitter gem
我正在使用,但是我希望了解如何在页面加载后在后台运行它 目前我需要等待页面呈现,因为gem正在查询一些tweet。一旦gem得到响应,页面就会加载 然而,我希望在我的Twitter提要“div”标记中显示一个“加载”GIF,一旦检索到Twitter信息,就用相应的内容替换这个GIF 我读了几篇关于如何使用表单和表单上的“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
: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