浏览 4141 次
锁定老帖子 主题:ruby1.2,AJAX更简单
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-08
首先请按照官方blog升级,然后利用scaffold_resource生成一个模型。添加以后选择删除,确认以后你发现了什么?页面没有刷新!这是什么?这就是AJAX啊! 通过原生支持Restful,AJAX将会被更简单的表达(直接调用xmlhttprequest就行,服务端无需多余代码)。另外对应的url也有了简化(自己看代码吧),index和edit的时候都不需要写:action=>:save这样的字样了。 目前我只在这个层面上看到resources的利用,rss支持自然也很好,但是同样期待更丰富的应用。 dynamic-scaffold-resource也很有趣,现在自动生成的代码是每个字段都写在表单里的,而用了它以后,又可以用'scaffold :model' 了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-12-08
scaffold_resource什么时候生成了Ajax调用?它连prototype都没包含。
|
|
返回顶楼 | |
发表时间:2006-12-08
哦,我把页面无跳转刷新混同为AJAX了。现在不使用xmlhttprequest就可以实现修改和删除直接刷新了,不过实现机制好像和浏览器处理PUT和DELETE协议的特性有关。不过现在直接RESTful,controller支持AJAX的代码基本可以不写了。
|
|
返回顶楼 | |
发表时间:2006-12-08
跳转也还是有的:
引用 Processing PostsController#destroy (for 127.0.0.1 at 2006-12-08 17:19:30) [DELET E] Session ID: 905dfe759a338e2488b37a5da5508a24 Parameters: {"_method"=>"delete", "action"=>"destroy", "id"=>"6", "controller" =>"posts"} SQL (0.015522) SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.ad src, a.attnotnull FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attrelid = 'posts'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum Post Load (0.032803) SELECT * FROM posts WHERE (posts.id = 6) SQL (0.000082) BEGIN Post Destroy (0.000437) DELETE FROM posts WHERE id = 6 SQL (0.010730) COMMIT Redirected to http://localhost:3000/posts Completed in 0.07706 (12 reqs/sec) | DB: 0.05957 (77%) | 302 Found [http://local host/posts/6] Processing PostsController#index (for 127.0.0.1 at 2006-12-08 17:19:30) [GET] Session ID: 905dfe759a338e2488b37a5da5508a24 Parameters: {"action"=>"index", "controller"=>"posts"} Post Load (0.001275) SELECT * FROM posts Rendering content_typetext/htmllayoutfalseactionindex within layouts/posts Rendering posts/index Completed in 0.01207 (82 reqs/sec) | Rendering: 0.00177 (14%) | DB: 0.00128 (10% ) | 200 OK [http://localhost/posts] 它在这方面的改进主要体现在post_path和method上。 scaffold_resource生成的代码中,并没有用到HTTP的DELETE,而是自己模拟的,可能是因为浏览器暂时支持不好吧。 |
|
返回顶楼 | |