一些方法

一、date_select(object_name,method,options={},html_options={})
1、use_month_numbers
用法: :use_month_numbers=>true
月份默认以英文形式显示,当该属性设置为true后,则以数字的形式显示;
2、start_year
用法: :start_year=>1990
默认的起始年为当年减5年;若要自己设定,可以用start_year进行设定;
3、end_year
与start_year类似
4、discard_day
:discard_day=>true
去除年、月、日选项中的“日”,并默认为所选择的“月”的第一天
5、discard_month
:discard_month=>true
去除年、月、日选项中的“月”,在设置discard_month设置为true时,discard_day也会自动设置为true
6、discard_year
去除年、月、日选项中的“年”
7、default
:default=>{:day=>20}
当日期没有被选择,或被选择的日期格式无效时,所设定的默认值

二、表单form
以前的用法为:
<%form_tag :action=>'',:method=>'post' %>
<%=label_tag 'Name'%>
<%=text_field :table_name,:attr1%>
<%=check_box :table_name,:attr2%>
<%=submit_tag 'create'%>
<%end%>

新方法:

<%form_for :table_name,:url=>{:action=>''},:html=>{:id=>'test_id;} do |f|%>
<%=f.label :attr1%>
<%=f.text_field :table_name,:attr1%>
<%=f.check_box :attr2%>
<%=submit_tag 'create'%>
<%end%>

三、collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})
有时候可以很好的代替select标签
例:
<%=collection_select(:child,:parent_id,@parent,:parent_id,:parent_name%>

四、field_set_tag
将其内部的内容包含在<fieldset><lenged></lended></fieldset>之中,可以美化界面
<% field_set_tag do %>
<p><%= text_field_tag 'name' %></p>
<% end %>

五、数据处理
1,number_to_currency(number,options={})
options:
:precision-设置货币数字的精度(默认为小数点后两位)
:unit - 设置货币符(默认为$)
:separator-设置小数点的分隔符(默认为".")
:delimiter-设置千位的分隔符(默认为",")

2,number_to_human_size(number,options)
:precision,:separator,:delimiter;
将数字转换为字节
number_to_human_size(123) # => 123 Bytes
number_to_human_size(1234) # => 1.2 KB

3,number_to_percentage(number,options)
4,number_with_delimiter()
为数字添加分隔符
number_with_delimiter(12345678, :delimiter => ".") # => 12.345.678
number_with_delimiter(12345678, :seperator => ",") # => 12,345,678
5,number_with_precision(number,options)
位数字设定精度
umber_with_precision(111.2345, :precision => 2) # => 111.23
number_with_precision(13, :precision => 5) # => 13.00000

六、文字安全
1、sanitize,sanitize_css
去除页面文字中包含javascript,href等不安全字符

2,strip_links
除去链接中不安全的字符如:
str='<a href="http://www.baidu.com">baidu</a>'
strip_links(str) =>baidu

3、strip_tags
例:
str='<div style="display:none">some words</div>'
strip_tags(str) =>some words

七、文字美化
1、auto_link
功能:为包含<a></a>的文字自动添加链接,为包含@的文件自动添加邮件链接
例如:
<%=auto_link("<a href='http://www.baidu.com'>baidu</a> peswe@163.com")%><br>

2、concat
功能:类似ASP中的response.write
用法:concat 'content',binding

3、cycle
功能:在表格的行或其他的元素中循环显示不同的css属性
例如:
<style type="text/css">
.even{
background-color:olive;
}
.odd{
background-color:fuchsia;
}
</style>
<table border="0">
<%(0..10).each do |i|%>
<tr class="<%=cycle('even','odd')%>">
<td>
some words
</td>
</tr>
<%end%>
</table>

4、excerpt
功能:在搜索时常用,突出显示某些关键词
例如:
excerpt('This is an example', 'an', :radius => 5)
# => ...s is an exam...

excerpt('This is an example', 'is', :radius => 5)
# => This is a...

5、highlight
功能:突出显示某些关键词
highlight('You searched for: rails', 'rails')
# => You searched for: <strong class="highlight">rails</strong>

highlight('You searched for: ruby, rails, dhh', 'actionpack')
# => You searched for: ruby, rails, dhh

highlight('You searched for: rails', ['for', 'rails'], '<em>\1</em>')
# => You searched <em>for</em>: <em>rails</em>
在最后的那个例子中,<em>\1</em>中的1是数字1,而不是字母L

6、pluralize
功能:更具情况将对象转为复数
pluralize(1, 'person')
# => 1 person

pluralize(2, 'person')
# => 2 people

pluralize(3, 'person', 'users')
# => 3 users

pluralize(0, 'person')
# => 0 people
7、simple_format
功能:为段落中的字符添加<p>标签,且在段落中出现"\n"的地方自动加入"<br>"
例:
my_text = "Here is some basic text...\n...with a line break."

simple_format(my_text)
# => "<p>Here is some basic text...\n<br />...with a line break.</p>"

more_text = "We want to put a paragraph...\n\n...right there."

simple_format(more_text)
# => "<p>We want to put a paragraph...</p>\n\n<p>...right there.</p>"

simple_format("Look ma! A class!", :class => 'description')
# => "<p class='description'>Look ma! A class!</p>"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值