Rails 自从 1.1版开始引入了 rjs 模板,目的是为了解决渲染一个模板执行多个 JavaScript 代码块的问题。rjs 模板基于 prototype 的 ajax 类,渲染一个 rjs 模板的同时,会将 response 的 content-type 设置为 text/javascript,如果该 request 是有 Ajax.Request 或者 Ajax.Updater 发出的,并且 evalScripts 设置为 true,那么如果返回的报文头将会使返回的 JavaScript 自动被执行。
利用这个特性,可以做到一个调用更新多个 html 元素的目的(Update Multiple Elements by One Request)。比如以下 rjs 模板:
page.update_html 'container', :partial => 'partial_page'
page.visual_effect :highlight, 'container'
page.alert 'Updated Successfully'
将会更新 container 元素的内容,然后有一个 highlight 的效果,最后弹出一个 Updated Successfully 的对话框。
再联系到 inu.cc 的现有框架,过渡依赖于局部渲染。全局传参的架构确实很保险,但是过于臃肿,现在回想起来甚至有点违背了 rails 本身倡导的 agile 的思想。既然有现成的、符合使用惯例的实现方式,为何要自己另外建立一套框架?这点确实是设计初期没有考虑到的。结果导致了当前架构的不易维护。
吃一堑长一智,在此记录下以前忽略的几种模式:惯例优先、默然渲染、rjs、rxml,以及提供各种常用服务的开发包。希望这些记录能够使 inu.cc 的下一个版本更加快速、敏捷、易维护,同时能带来更好的用户体验。
RJS API:
RJS Api on http://api.rubyonrails.org
分享到:
相关推荐
- **OReilly.RJS.Templates.for.Rails.Jun.2006.chm**:这可能是一个关于RJS模板的电子书,详细介绍了如何在Rails项目中使用和优化RJS模板,包括示例和最佳实践。 - **file_id.diz**:这通常是一个文件说明文件,...
4. **响应处理**:在处理Ajax请求的控制器中,可以返回一个rjs模板,动态更新页面并反馈给用户。 在描述中提到的博文中,作者分享了一些关于如何使用rjs的实际示例和经验,这可能是对rjs技术的具体应用和实践的探讨...
rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板 Rails 应用编辑器 Rails 应用程序编辑器 gem 安装一个 命令行 工具来从"食谱"的Collection 组装 Rails 应用程序。"你可以使用 rails_...
虽然具体内容无法在这里详述,但可以预期该博客会涵盖RJS的基本概念、如何在Rails项目中集成RJS、编写RJS模板以及解决常见问题等。 标签“源码”和“工具”表明这个压缩包可能包含了示例代码和相关工具,帮助读者...
Ruby on Rails 现在带来了网页开发风暴; 现在国内接触这方面资源较少,php还是主流,可是ruby... 笔者在ruby on Rails 学习中发现一个扩展性极好的模板,spree 工作之余,自己编写了基于这个模板的商品批量导入的脚本
RJS全称是Ruby JavaScript,它是Rails中用于生成JavaScript代码的一种方式,主要用于在客户端执行一些动态操作,如更新页面部分,无需整个页面刷新。 在这个RJS Templates for Rails的电子书中,我们可以预期学习到...
标题中的"Ruby-开箱即用的Rails项目模板"指的是一个预先配置好的Rails项目结构,它包含了特定的设置和集成,以便开发者能够快速启动新项目,无需从零开始配置各种依赖和工具。这种模板通常会包含最佳实践和常用库,...
rails_email_preview, 在 Rails 中,预览和编辑应用程序邮件程序模板 Rails 电子邮件预览 使用这里 Rails 引擎在浏览器中预览电子邮件。 兼容 Rails 4.2 。电子邮件审阅: 所有电子邮件预览的列表: 代表有两个主题...
6. **erb模板**:Rails中的视图通常使用ERB(Embedded Ruby)模板语言,将HTML与Ruby代码混合,用于动态生成页面内容。 7. **Helper方法**:Rails提供了许多内置助手方法,帮助开发者在视图中处理复杂的逻辑和呈现...
Rails提供了一套强大的模板系统,使得开发者可以使用ERB(Embedded Ruby)或HAML等语法来编写视图。 4. **Routes**:Rails的路由系统负责将HTTP请求映射到相应的控制器动作。通过配置routes.rb文件,开发者可以定义...
2. **配置**:在`config/application.rb`或`config/environments/*.rb`中配置Rails使用StringTemplate作为默认模板引擎。 3. **创建模板**:在`app/views`目录下创建`.str`文件,编写你的模板代码。 4. **渲染模板...
安装过程中,遵循提示进行,确保选择自定义安装并勾选Rails相关的插件,以便在Aptana中获得对Rails的全面支持。 安装完成后,打开Aptana Studio,创建一个新的Rails项目。在“File”菜单中选择“New”然后点击...
- **模板引擎**:Rails支持多种模板引擎,如ERB、HAML等,开发者可以根据项目需求选择合适的模板引擎。 - **测试驱动开发(TDD)**:Rails内置了测试框架,鼓励开发者采用测试驱动的开发方式,确保代码质量和可维护性...
标题中的“Rails的中文乱码问题”涉及到的是在使用Ruby on Rails框架开发Web应用时,遇到的中文字符编码不正确的问题。Rails是一个基于Ruby语言的开源Web开发框架,它遵循MVC(Model-View-Controller)架构模式。在...
在Rails项目中安装Mongrel通常通过RubyGems进行,这是一个Ruby的包管理器。首先确保RubyGems已经安装,然后在命令行执行以下命令: ```bash gem install mongrel ``` 安装完成后,可以通过`mongrel_rails`命令来...
Rails 基本模板参考: : Ruby on Rails Gemfile:定义应用程序正在使用的库的文件bundle install:基于Gemfile,安装所有库每次修改 Gemfile 时都应该运行bundle install gem 是 Ruby 的库RubyGems.org 是一个查找和...
这个Rails项目提供了学习和研究Web开发的机会,特别是对于Ruby on Rails新手,可以通过阅读和理解源代码来提升技能,了解实际应用中Rails的用法。同时,对于有经验的开发者,这个项目也可以作为一个起点,进行二次...
在Ruby on Rails中,开发者可以快速构建功能丰富的动态网站,因为它提供了大量的内置功能和库,如数据库连接、ORM(对象关系映射)系统ActiveRecord、模板引擎ActionView以及路由系统ActionController等。...
- 如何在Rails中实现RESTful接口。 - **案例分析**: - 分析一个典型的RESTful应用示例。 #### 九、练习作业2-在Group里面发表文章-双层RESTFul - **目标**: - 在Group中添加Post功能。 - **实现过程**: - 创建...