“模板”

当你写一“视图”时,你就正在写一个“模板”:有时候这将生成最终结果。要理解这
些“模板”是如何工作的,我们需要关心三件事:
1、“模板”在哪儿。
2、它们的运行环境,和
3、它们内部是什么。
“模板”在哪儿
render()方法期望在由全局的template_root 配置选项定义的目录下找到“模板”。缺
省,这被设置为当前应用程序的app/views 目录。在这个目录内,约定是给每个“控制器”
的“视图”一个分离的子目录。例如,我们的Depot 应用程序包含admin 和store“控制器”。结果,我们在app/views/admin 和app/views/store 目录下“模板”。
典型地每个目录都在相应“控制器”内“动作”的后面包含“模板”的名字。
你也可以有在“动作”后面没有名字的“模板”。这些都可以从“控制器”中使用如下
调用被提交

render(:action => 'fake_action_name')
render(:template => 'controller/name)
render(:file => 'dir/template')

例子中最后一个允许你存储“模板”在你的文件系统的任何位置上。如果你想在应用程
序中共享“模板”,这样做很有用。

[color=red]“模板”环境[/color]

“模板”是包含文本和代码混合体。代码用于添加动态的内容给“模板”。代码运行的
环境能让它访问由“控制器”设置的信息。

1、“控制器”的所有实例变量在“模板”内也是有效的。这就是为什么“动作”会传递
数据给“模板”的原因。

2、“控制器”对象的headers, params, request, response, 和session 做为存取器方法在“视图”内也是有效的。通常,“视图”代码或许不应该直接使用这些,同样处理它
们职责应该留给“控制器”。但是在调试时我们会发现这很用处。例如,下面的rhtml“模
板”使用debug()方法来显示request 的内容,parameters 的细节,和当前的response。
<h4>Request</h4> <%= debug(request) %>
<h4>Params</h4> <%= debug(params) %>
<h4>Response</h4> <%= debug(response) %>

3、当前的“控制器”对象可以使用属性名字controller 来访问(包括ActionController
内的方法)。
4、“模板”的基本目录路径在属性base_path 内是有效的。


Rails 支持两种类型的“模板”。
1、rxml “模板”用于Builder 库来构造XML 应答。
2、rhtml “模板”是HTML 和被植入Ruby 的混合体,典型地用于生成HTML 页面。下面
我们简要地看看Builder,然后看rhtml。余下部分是两者的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值