格式化助手
视图的一个重要功能就是可以将从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",
%>
如果@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,
rder_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>
看看上面的代码是不是很简单!!
分享到:
相关推荐
5. **Helper模块**:辅助方法库,为视图提供便利的功能,如格式化日期、链接生成等。 6. **Gem生态系统**:Ruby有一个庞大的Gem包管理系统,允许开发者轻松安装和使用第三方库,如Devise(身份验证),Paperclip...
`activesupport`是Rails中的另一个核心库,提供了一套实用工具方法和通用库,如日期和时间处理、国际化支持、JSON编码和解码。`activesupport-1.4.4.gem`是这个库的一个旧版本,但依然包含了大量提高代码可读性和...
这个插件可能包含丰富的功能,如富文本编辑、格式化选项、图片上传等,使得内容创建更加便捷和直观。 Ruby on Rails是由David Heinemeier Hansson开发的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构...
2. **Win32OLE**: 这个库是Ruby对Windows上的OLE Automation(对象链接和嵌入自动化)的接口。通过Win32OLE,Ruby程序可以直接调用Excel应用程序对象模型,从而实现更复杂的操作,比如打开现有的Excel文件、编辑内容...
4. **处理响应**:响应体通常需要解析,例如,如果是 JSON 格式,可以使用 XML 库(如 DBMS_XMLDOM 或 DBMS_XSLPROCESSOR)进行解析,提取所需的数据。 5. **错误处理**:务必处理可能的网络错误、API 错误以及解析...
标题"FusionCharts_RoR"涉及的是FusionCharts公司的一款产品在Ruby on Rails(RoR)框架中的应用。FusionCharts是一款流行的JavaScript图表库,它提供了丰富的交互式图表和图形,用于将数据可视化。Ruby on Rails是...
接着,我们可能会学习到如何使用视图层(Views)和模板引擎来格式化和展示报告。ERB(Embedded Ruby)是RoR中常见的模板语言,它允许开发者在HTML中嵌入Ruby代码,以动态生成内容。另外,可能还会涉及Slim或Haml等...
者也可能采用了Markdown格式,让用户方便地格式化文本。 3. 互动与投票:为了促进高质量内容的涌现,平台可能允许用户对问题和答案进行投票,表达赞同或反对,以展示信息的价值。 4. 评论与回复:用户可以对问题和...
Ximdex 4.0-自述文件 Ximdex CMS是一种分离的无头语义内容和数据管理系统(无头CMS DMS),它允许操作和生成内容,数据和应用程序,并以不同的目标技术发布:PHP,J2EE,.NET,XML / XSLT,JS, RDF,JSON,RoR ......
8. **Helper方法**:为了保持视图的简洁,Rails允许在helper模块中定义辅助方法,这些方法可以在多个视图中复用,用于复杂的逻辑或格式化输出。 9. **Testing**:RoR提供全面的测试支持,包括Unit Tests、...
您的Jenkins作业需要以junit格式导出tests_results,否则bacheca无法获取结果。 目前,bacheca仅支持junit,这是事实上的jenkins标准。 组态 配置詹金斯api cd bacheca touch config/credentials_jenkins.yml 这...
信息 本地化 由Rails I18n部分处理。 目前处理: 英文(:en) 意大利语(:it) …_欢迎其他翻译!_ 语言选择策略当前为: 首先检查是否提供了http参数语言环境。 在这种情况下,请使用提供的语言环境然后检查是否...
12. **ActiveSupport**:包含了一系列通用的 Ruby 工具和实用方法,如时间间隔、日期和时间处理、字符串格式化等。 13. **测试(Testing)**:Rails 提供了全面的测试支持,包括单元测试(Test::Unit)、集成测试...
1. **页面管理**:允许用户通过直观的界面创建、编辑和组织页面内容,支持文本格式化和富文本编辑。 2. **区域管理**:页面可以包含多个区域,每个区域可以独立显示不同的内容,提高了布局灵活性。 3. **片段管理**...
在这个视图中,我们将使用FusionCharts的JavaScript API创建图表,将查询到的工时数据转化为图表所需的格式,然后使用FusionCharts提供的图表类库生成图表。 在实际应用中,日期范围通常需要动态获取,可以通过表单...
- **呼叫路由与转码平台**:Asterisk的核心功能在于能够智能地路由电话呼叫,并对不同格式的音频数据进行转码。 - **多协议支持**:除了支持传统的电话线路连接外,还支持多种VoIP协议,如SIP、IAX2等。 - **硬件...
- **ROR/ROL/RCR/RCL**:循环移位,右循环/左循环/带进位右移/带进位左移。 6. **程序流程控制指令**: - **CLC/STC/CMC**:控制进位标志,清零/置1/翻转。 - **CLD/STD**:控制方向标志,决定在字符串操作中是...
1. **参数化查询**:ActiveRecord的查询接口使用方法链,如`find_by`,`where`等,它们会自动处理SQL注入。你应该避免使用字符串拼接构建查询。 2. **白名单参数**:对用户输入进行验证,只允许特定格式的数据。 3...
在IT行业中,FusionCharts是一款广泛使用的数据可视化工具,它能够将复杂的数据转换为美观的交互式图表。在某些场景下,例如离线环境或者网络不稳定的情况,用户可能需要将图表导出为静态图片或者Excel文件以便后续...
18. **FMOVP指令**:例如`FMOVP K0 D7005 K2`,用于数据的格式化移动。 19. **MUL乘法指令**:例如`MUL D1301 K7 D1400`,在D1400中存储D1301和K7相乘的结果。 20. **SER数据查找指令**:例如`SER D700 K0 D1300 ...