mysql,Linux,HighPerformance,ruby on Rails

2010年7月24日星期六

Rails3beta4使用Ajax的一些参考

update: prototype更新有点误解,现在已经更正。

Rails3Beta4的Ajax参考文档目前不是很多,因为版本更新很快,参考的内容很多都已经过期.完整可参考的文档少之又少.经过近期项目的经验,我想总结一下:
1, Rails3Beta4已经快接进RC,想使用ajax,直接在link_to,form_tag,form_for加上remote=> true,就能产生ajax request, Controller里加不加respond_to都会去找rjs,或js.erb.两个后缀没有什么差别,关键在于使用js.erb感觉和.html.erb统一了后缀名而以.(今天跑个demo,才知道使用js.rjs就可以调用prototype了,方法可以在ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods里找到。你可以使用railsapi.com生成的文档查看到 )
2.我在使用form_tag里加上select_tag,想使用select_tag的onchange加上submit事件来请求form_tag中的ajax,不能成功.感觉是我的思路的问题,直接使用select_tag没有remote属性,不过直接使用ujs的onchange事件里加上ajax就能控制.通过这样的体会,你会发现使用UJS确实比Rails之前的RJS更简单,更方便,实现的效果和原来的是一样的.一样可以调用contorller里的方法及js.erb.
JQuery的UJS调用参考文档多,所以大家才想办法在Rails里去掉prototype使用jquery.不然如果直接prototype,怎么使用还需要去看prototype,有点让新人不知手措.(教程是没更新的,但查文档是有helper函数,生成项目试用就可以上手。)
总结,Rails3里,ajax的使用更开放,也就是说,其实你在rails3中使用哪个框架都可以,只需要修改一个rails.js就可以了.
参考:

--
tommy xiao
E-mail: xiaods(AT)gmail.com

没有评论:

发表评论