处理布局、偏好、帮助程序以及其他类型的代码片断时。这些特性允许使用不同的复合部件构建复杂的 Web 页面。在这里,我就不对细节做过多介绍了。
在有了模板策略之后,现在再来看一下 清单 4。您可以看到访问活动记录 Trail 模型并用 <% for trail in @trails %> 命令在 @trails 中的每条路线上循环的 list.rhtml 视图。(您已经填充了控制器中的 @trails 实例变量)。对于每条路线,该视图都将得到 Trail.content_columns,它是 trails_development 数据库中 trails 表的列的列表。然后,该视图通过在列表中的每个列上进行循环,提供数据库中每一列的值。trail.send(column_name) 命令把 name、difficulty 和 description 方法发送给 trail。
现在是在屏幕上查看结果的时候了。如果回忆一下,应当记得您已经在第 1 部分的示例中键入了一些 fixture 形式的测试数据。要把它们加载到开发环境(fixture 默认装入测试环境)中,则只需键入 rake load_fixtures 即可。启动 Rails 服务器(在 Unix 上用 script/server,在 Windows 上用 ruby script/server),把浏览器指向 localhost:3000/trails/list 就可以看到结果。在这个 URL 中,trails 是控制器的名称,list 是动作的名称,由 list 控制器方法实现。图 1 显示了结果:
清单 1. 列出路线