ror 的格式化

格式化助手

  视图的一个重要功能就是可以将从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.

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

<%= 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>
<%= pagination_links(@user_pages) %>
<hr>

  看看上面的代码是不是很简单!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值