`

Rails Recipe实践(one by one) -- Update Multiple Elements...

阅读更多
在编写ajax应用的时候,有时需要在一次click中同时更新页面上的多个元素,这该怎么做呢?rails提供了一个新鲜玩意儿,可以帮助我们 ’成批’ 的更新页面元素。
这一章碰到的这个新玩意儿,叫做Romote Javascript(RJS),可以在其中写入ruby代码,它则会自动转化为javascript语法,极大的方便了我这种三脚猫水平的web开发人员。rjs会在需要的时候自动生成javascript代码,然后将content-type设置成text/javascript,在view端,集成在rails中的prototype(前提是你在view中引用了javascript_include_tag :default 或者javascript_include_tag :prototype)会识别并且将从服务器端返回的内容当作javascript代码自动执行。当然,既然你想要图方便,自然需要遵守rjs文件得规矩。一个rjs文件得内容看上去类似下面得内容:
ruby 代码
 
  1. page.replace_html 'time_updated' , Time.now.to_s  
  2. page.visual_effect :shake, 'time_updated'  
  3. page.insert_html :top, 'the_list' , '
  4. King of the Hill
  5. '  
怎么样,是不是一目了然?让我用javascript写同样功能的代码出来,估计,我要晕半天了。
具体的实现起来相当简单,假设,我的某个页面上有个ajax链接,单击它,就会更新页面上的多个不同部分。
ruby 代码
 
  1. <%= link_to_remote 'rjs demo',:url=>{:action=>:rjs_show} %>  
这个名为rjs_show的action内容假设为空,因为在这里我们不需要action处理事务,所有的ajax操作,我们都放将放到rjs文件中去:
ruby 代码
 
  1. def rjs_show  
  2. end  
注意,action和rjs文件必须是同名的,既,这里的rjs文件应该名为rjs_show.rjs,和同一个controller下的视图文件放在一起。
分享到:
评论

相关推荐

    Pragmatic - Agile.Web.Development.with.Rails.4.Sep.2013.pdf

    Pragmatic - Agile.Web.Development.with.Rails.4.Sep.2013.pdf

    gitlab-ce-14.2.3-ce.0.el8.x86_64.rpm

    GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 适用于CentOS 8操作系统

    Ruby-on-Rails-rails.zip

    Ruby_on_Rails_rails.zip Ruby_on_Rails_rails.zip Ruby_on_Rails_rails.zip Ruby_on_Rails_rails.zipRuby_on_Rails_rails.zip Ruby_on_Rails_rails.zip Ruby_on_Rails_rails.zip Ruby_on_Rails_rails.zipRuby_on_...

    gitlab-ce-14.2.3-ce.0.el7.x86_64.rpm

    GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 适用于CentOS 7操作系统

    Rails.Angular.Postgres.and.Bootstrap.2nd.Edition

    You should have some experience with basic Rails concepts and a cursory understanding of JavaScript, CSS, and SQL, but by no means need to be an expert. You'll learn how to install Postgres on your ...

    sclo-ror42-rubygem-rails-html-sanitizer-1.0.3-1.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    Apress.Practical.Rails.Social.Networking.Sites.Jun.2007.eBook-BBL.pdf

    ### 实践Rails社交网络站点开发知识点总结 #### 一、书籍基本信息 - **书名**:《实践Rails社交网络站点》 - **作者**:Alan Bradburne - **出版年份**:2007年 - **出版社**:Apress - **ISBN-13(pbk)**:978-1-...

    (Unity源码)街机外星风格射击游戏源码On Rails Shooter Template 1.20.rar

    2-94街机外星风格射击游戏源码On Rails Shooter Template 1.202-94街机外星风格射击游戏源码On Rails Shooter Template 1.202-94街机外星风格射击游戏源码On Rails Shooter Template 1.202-94街机外星风格射击游戏...

    rails-documentation-1-2-1.zip

    标题 "rails-documentation-1-2-1.zip" 暗示这是一份关于 Ruby on Rails 框架的文档,版本为 1.2.1。Ruby 是一种面向对象的编程语言,而 Rails 是一个基于 Ruby 的开源 Web 应用程序框架,遵循 Model-View-...

    Beginning.Rails.3-

    Beginning.Rails.3-blog代码 This book is particularly well suited to those with little or no experience with web application development, or who have some experience but are new to Rails 3

    rails-chm-2-0-2.rar

    `rails-documentation-2-0-2.chm` 文件详细涵盖了这些概念,包含了关于Rails 2.0.2的API参考、教程和指南。通过仔细阅读和实践,开发者能够深入理解Rails的工作原理,并有效地开发出高效、可维护的Web应用。

    Wiley.Ruby.on.Rails.Bible.Oct.2008

    根据提供的文件信息,“Wiley.Ruby.on.Rails.Bible.Oct.2008”这本书主要涉及Ruby on Rails的相关知识和技术。以下是对该书标题、描述以及部分内容中的关键知识点进行的详细解读: ### 标题:“Wiley.Ruby.on.Rails...

    rubygems-update-1.3.1.gem

    ruby 升级gem rubygems-update-1.3.1.gem

    Pragmatic.Rails.Recipes.Rails.3.Edition.Mar.2012.pdf

    - **全面覆盖 Rails 3**:Rails Recipes Rails 3 版本全面覆盖了 Rails 3 的新特性和改进之处,确保读者能够跟上框架的发展趋势。 - **实践导向**:本书采用实际案例和解决方案的形式,帮助读者快速解决问题,并且...

    sclo-ror42-rubygem-rails-doc-4.2.5.1-1.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    Addison.Wesley.Rails.AntiPatterns.Best.Practice.Ruby.on.Rails.Refactoring

    《Rails反模式:最佳实践与Ruby on Rails重构》是一本由Chad Pytel和Tammer Saleh撰写的书籍,深入探讨了在Ruby on Rails开发过程中常见的反模式,并提供了相应的最佳实践和重构策略。本书旨在帮助开发者识别并避免...

    Addison.Wesley.Service-Oriented.Design.with.Ruby.and.Rails

    通过学习本书,读者不仅可以了解到服务导向设计的基本原理和关键技术,还能掌握使用Ruby及Rails来构建高效、灵活的服务导向系统的实践方法。这对于希望利用现代Web技术来提升应用程序性能和可维护性的开发者来说是...

    rails-documentation-1-2-0-rc1.chm

    rails-documentation-1-2-0-rc1.chm

Global site tag (gtag.js) - Google Analytics