分享 Rails 3.2 的 Ajax 向导

Rei · 发布于 2012年4月21日 · 最后由 xiao__liang 回复于 2016年5月13日 · 7022 次阅读
1

前不久入手了《Web开发敏捷之道》的中文第4版,翻看了 Ajax 部分,发现竟然还是使用 .rjs 模板。.rjs 模板在 3.1 版以后已经被移除。另外我又去看了官方的 Rails guide,发现也没有讲述 Ajax 的章节。
也就是说一个新手入门,很可能搞不清楚 Rails 对 Ajax 的支持是如何处理的。所以我想在这写写 Rails 3.2 的 Ajax 向导,让不了解 Ajax 的新手了解 Rails 3.2 的 Ajax 处理,或者了解 Ajax 但不了解 Rails 的人知道 Rails 对其提供了什么支持。

http://chloerei.com/2012/04/21/rails-3-2-ajax-guide/

补充:要写一个向导真是不容易,特别是很难整理出一个足够短、能看懂、同时又能跑起来的例子。这个角度看《Web开发敏捷之道》还是挺不错的,除了 rjs 部分过时了。所以看完我的向导之后还是不知道怎么写 Ajax 的朋友,不妨用 3.0.5 跟着《Web开发敏捷之道》第4版中文的例子走一遍,之后再去了解为什么 rjs 模板被去掉了。

共收到 28 条回复
717
willmouse · #1 · 2012年4月21日

@Rei ,看完了,说的真清楚,对不熟悉ajax的同学应该有很大的帮助,感谢

602
tassandar · #2 · 2012年4月21日

cool ,谢谢分享。like了~ 另外如果和我一样不太喜欢魔法的话 ,http://www.alfajango.com/blog/rails-3-remote-links-and-forms/ 和 这个博客里面的http://www.alfajango.com/blog/rails-3-remote-links-and-forms-data-type-with-jquery/#example 都是不错的阅读资料。

96
wx1452 · #3 · 2012年4月21日

非常感谢!

304
zernel · #4 · 2012年4月21日

谢谢分享~

273
ruby_sky · #5 · 2012年4月22日

关键还是那个js.erb的问题。

96
bryanwong · #6 · 2012年4月27日

太棒了!对于 Rails 的 ajax 一直很困惑,看完楼主的介绍,豁然开朗! 多谢分享!

257
lb563 · #7 · 2012年4月28日

#6楼 @Rei 怎么你给的链接不能进去了吗?

The page you were looking for doesn't exist.

1
Rei · #8 · 2012年4月28日

#7楼 @lb563 哪个?

2
huacnlee · #9 · 2012年4月28日

@Rei 换了头像我都不认识你了

257
lb563 · #10 · 2012年4月28日
1
Rei · #11 · 2012年4月28日

#9楼 @huacnlee 不换头像不舒服斯基

56
congteng · #12 · 2012年4月28日

前一阵还问过这个问题。

465
reducm · #13 · 2012年5月06日

服务短方式的 *.erb 支持 coffee吗?

162
quakewang · #14 · 2012年5月06日

@Rei 文章很简洁,提一个小瑕疵,客户端的ajax在Rails 3.2里面通常是绑定ajax:event来做的,而不需要绑定form的submit或者link的click事件,这样可以少去很多代码:

$('new_reply_form').on('ajax:success', function(data){
  $("#xxx").html(data)
})

1
Rei · #15 · 2012年5月06日

#13楼 @reducm 我试了一下 coffee.erb,不能正确处理,后来就把文中 coffee 部分内容去掉了。

#14楼 @quakewang 因为假设的例子是 :remote => true 这个 Rails 的 helper 都不用,所以用了 submit 事件发起 ajax 请求。也许例子二和一混淆了,我再补充一个例子二的form。

96
mike · #16 · 2012年5月09日

@Rei 网站貌似无法访问了

2358
dayudodo · #17 · 2012年6月10日

写的特别好,一下就明白了,原来版本差异会这么大,一开始我看的还是rails 2的书,WEB开发之旅.

465
reducm · #18 · 2012年10月29日

#15楼 @Rei 最近有需要再coffee后面再加个可以处理异步的javascript引擎,刚看了一下 Sprockets的库, 发现里面其实可以支持在erb里嵌coffee的

Note: Sprockets processes multiple engine extensions in order from right to left, so you can use multiple engines with a single asset. For example, to have a CoffeeScript asset that is first preprocessed with ERB, use the extension .js.coffee.erb.

1
Rei · #19 · 2012年10月29日

#18楼 @reducm 又试了一下,发现可以,之前不知道搞错了什么。

5759
diguage · #20 · 2013年4月28日

我在《Web开发敏捷之道》的英文第4版。刚刚接触Ajax那部分内容,看的不是很明白,并且运行还有问题,结果还不刷新,真是郁闷!现在正在努力寻找问题所在。到时,搞不定,希望@Rei 能帮一把。啊哈哈

6266
zhangyanan · #21 · 2013年9月22日

我想说真的是找不到该页面...有个问题,rails 3 ,有生成树的gem吗,怎么用?谢啦

96
eva · #23 · 2013年10月22日

#22楼 @Rei 这个连接又失效了

96
hyou · #24 · 2013年11月06日

连接失效了 @Rei

10007
satoshigi · #25 · 2013年11月19日

连接失效了

1
Rei · #26 · 2013年11月20日
10007
satoshigi · #27 · 2013年11月20日

#26楼 @Rei 非常感谢!!!!我之前要死要活地看完昨天你发的英文guide,然后终于看到中文,真的非常感谢!!!!

25910
xiao__liang · #28 · 2016年5月13日

@Rei 楼上链接都失效了,能麻烦再发一下么

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册