Ruby on Rails:动作视图纵览
http://tech.ddvip.com 2008年01月18日 社区交流
内容摘要:在本文中,将主要讨论动作视图的基础服务。第一部分介绍了和动作视图相关的服务。在第二和第三部分讨论动作视图的一些基本功能,在最后一部分,将给出一个实例来说明如何使用动作视图。
除了以上提到的服务外,在动作视图中还有其它的服务,如格式化助手等。但是上面所介绍的三个服务是动作视图中最重要的。在下一部分,我们将讨论如何使用这些服务。
模板和格式化助手
动作视图为我们提供了很多建立动态视图的服务。下面是动作视图提供的主要的服务:
·模版
·格式化助手
·分页
·布局
上面的4种服务,除了格式化助手外,其它三个服务都已经在前面介绍过了。
模板
就象以前讨论的一样,在模板中包含了一些代码、标记、简单文本或它们的组合。在其中的代码可以通过Controller中的访问信息提供动态的内容。代码通过执行环境访问信息。这个环境为代码提供了以下的信息:
1. Controller的实例变量,通过这些变量可以将数据从Controller传给模板。
2. 作为存取器的Controller对象。这些对象包括对象头、参数、请求、响应和会话。
3. 当前正在使用的Controller对象。模板代码可以从这个Controller对象中调用它的public方法。
在RoR中的模板是RHTML文件。RHTML文件有些类似于JSP文件,在RHTML文件中有静态的HTML,也有动态的内容。动态的内容可以由内嵌的代码生成技术产生,也可以用手工编写。如以下的RHTML文件显示了当前的日期和时间:
<h1>大家好!</h1>
<p>
<b>
当前日间: <%= Time.now %>
</b>
</p>
和JSP类似,在RHTML中有两种写动态代码的方法,一种是将代码写到<%= … %>中,另外一种是将代码写在<% … %>中。在<%= … %>中的Ruby语句只是当作一个值返回,如果其中含有多条语句,则返回最后一条语句的值。而将代码放到<% … %>中,则按着正常的程序逻辑执行。虽然RHTML中可以执行Ruby语句,但最好不要将商业逻辑代码写在RHTML中。代码的执行原理可看下面的例子。
来源:天极 作者:李宁 责编:豆豆技术应用