快速业务通道

Ruby on Rails的动作视图纵览 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
作一个值返回,如果其中含有多条语句,则返 回最后一条语句的值。而将代码放到<% … %>中,则按着正常的程序逻辑执行。虽然RHTML中可以执行 Ruby语句,但最好不要将商业逻辑代码写在RHTML中。代码的执行原理可看下面的例子。

如果有以下代码:

<% 5.times do %>
<5>
<% end %>

在执行RHTML时,将上述代码转换为Ruby语句:

5.times do
puts "<5>"
end

Ruby on Rails的动作视图纵览(3)

时间:2011-11-09 天极 李宁

格式化助手

视图的一个重要功能就是可以将从Controller传过来的数据进行格式化,以便用户更容易理解这些数 据。RoR提供的格式化助手就是用来完成这个功能的。格式化助手主要可以格式化三类信息:数字、日期 和文本。下面将讨论如何使用格式化助手对这些信息进行格式化。

数字和日期格式化

格式化助手可以进行多种的转换工作,如将本地时间转换成另外一种形式,将数字转换成货币类型、 百分比或电话号,下面是一些转换的例子: <%= distance_of_time_in_words(Time.now, Time.local (2006, 11, 1)) %>

将得到4或其它的数字(根据你运行它的日期不同而不同)

<%= distance_of_time_in_words(Time.now, Time.now + 40, false) %>

将得到1分钟(40表示秒)

<%= number_to_currency(99.99) %>

将得到$99.99

<%= number_to_percentage(66.6666) %>

将得到 66.667%

<%= number_to_percentage(66.66666, :precision => 1) %>

将得到 66.7%

<%= number_to_phone(1125551212) %>

将这个数字转换为 112-555-1212

格式化文本

同样,格式化助手也可以格式化文本。格式化操作包括截取字符串,加亮显示字符串中的子字符串, 甚至可以将一个单词转换成复数。下面是一些字符串的例子:

替换字符串的子串

<%= excerpt(@str, "you", 8) %>

如果@str中的字符串是 "I love …",那么就应该返回"I love you"

<%= highlight(@str, "love") %>

如果@str中的字符串是"I love you."

那应该显示:

I <strong class="highlight">love</strong> you.

Ruby on Rails的动作视图纵览(4)

时间:2011-11-09 天极 李宁

在字符串转换中,最有意思转换可能就是将英文单词的单数形式转换成复数形式(你可以用这个功能 查一下单词的复数形式是什么)。

<%= pluralize(2, "person") %>

显示 2 people.

分页

在第一部分我介绍了分页的概念。在这部分我将讨论如何通过RoR使分页变得更容易。RoR通过控制层 和视图层实现分页。在控制层,RoR的分页系统控制从数据库中得到的记录。在视图层显示从控制层得到 的数据,以及用于分页显示的导航条。下面的例子描述了将users表分页显示的过程:

控制层的实现:

在控制层,分页必须按如下代码实现:

def user_list
@user_pages, @users = paginate(:users, :order_by => ''name'')
end

以上代码通过paginate方法设置的分页器。这个方法有两个参数,第一个参数是要读取数据的表的名 子,第二个参数是在取数据时要排序的字段。这个方法返回两个对象,第一个对象@user_pages是分页器 对象, 第二个对象 @users 是每一页的记录数。其中@users用来向视图提供要显示的数据。 而 @user_pages负责从表中得到数据,然后将这些数据保存在@users中。

视图层的实现:

在视图层的RHTML文件中,@users中的数据将被展现给用户。pagination_links()方法可以实现导航的 功能。以下是具体的实现代码:

<table>
<tr><th>姓名</th></tr>
<% for user in @users %>
<tr><td><%= user.name %></td>
<% end %>
</table>
<hr>
<%= paginatio

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号