AssetTagHelper
官方链接:http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html
auto_discovery_link_tag(type = :rss, url_options = {}, tag_options = {})
返回一个连接标签,用于让浏览器或新闻阅读器自动发现RSS或ATOM Feed,类型可以是:rss,:atom。
参数:
:rel ,指定页面与这个连接的关系,默认为alternate
:type,覆盖MIME类型(如‘application/atom+xml’),不指定Rails就自动设置好
:title,指定连接的标题,默认值为大写字母开头的类型
image_path(source)
对在public/images目录下的图片资源进行操作,如果传入的内容以文档根目录(即“/”)开头,则路径直接返回。此方法被image_tag内部调用
如:
image_path("icons/edit.png") # => /images/icons/edit.png image_path("/icons/edit.png") # => /icons/edit.png
image_tag(source, options = {})
返回一个image标签,source参数可以是完整路径,也可以是在public/images目录下的文件名
参数如下:
:alt ,图片无法显示时出现的提示信息
:size,支持以width * height的形式定义宽高,如:30*40
:mouseover 可以用于图片切换
image_tag("icon") # => <img src="/images/icon" alt="Icon" /> image_tag("icon.png", :size => "16x10", :alt => "Edit Entry") # => <img src="/images/icon.png" width="16" height="10" alt="Edit Entry" /> image_tag("mouse.png", :mouseover => "/images/mouse_over.png") # => <img src="/images/mouse.png" onmouseover="this.src='/images/mouse_over.png'" onmouseout="this.src='/images/mouse.png'" alt="Mouse" /> image_tag("mouse.png", :mouseover => image_path("mouse_over.png")) # => <img src="/images/mouse.png" onmouseover="this.src='/images/mouse_over.png'" onmouseout="this.src='/images/mouse.png'" alt="Mouse" />
javascript_include_tag(*sources)
返回每个source的script标签集合,可以传递放在public/javascripts目录下的文件名,也可以传递文档根目录的完整路径
javascript_include_tag "xmlhr" # => <script type="text/javascript" src="/javascripts/xmlhr.js"></script> javascript_include_tag "xmlhr.js" # => <script type="text/javascript" src="/javascripts/xmlhr.js"></script> javascript_include_tag "common.javascript", "/elsewhere/cools" # => <script type="text/javascript" src="/javascripts/common.javascript"></script> <script type="text/javascript" src="/elsewhere/cools.js"></script> javascript_include_tag "http://www.railsapplication.com/xmlhr" # => <script type="text/javascript" src="http://www.railsapplication.com/xmlhr.js"></script>
javascript_path(source)
计算JavaScript资源的路径,如果没有.js扩展名,则此方法自动加上。在javascript_include_tag内部调用此方法。
javascript_path "xmlhr" # => /javascripts/xmlhr.js javascript_path "dir/xmlhr.js" # => /javascripts/dir/xmlhr.js javascript_path "/dir/xmlhr" # => /dir/xmlhr.js
stylesheet_link_tag(*sources)
返回source参数的样式表link标签。
stylesheet_link_tag "style" # => <link href="/stylesheets/style.css" media="screen" rel="stylesheet" type="text/css" /> stylesheet_link_tag "random.styles", "/css/stylish" # => <link href="/stylesheets/random.styles" media="screen" rel="stylesheet" type="text/css" /> <link href="/css/stylish.css" media="screen" rel="stylesheet" type="text/css" />
stylesheet_path(source)
计算置于public/stylesheets目录下的样式表资源路径
stylesheet_path "style" # => /stylesheets/style.css stylesheet_path "dir/style.css" # => /stylesheets/dir/style.css stylesheet_path "/dir/style.css" # => /dir/style.css
DateHelper
官方文档:http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html
date_select(object_name, method, options = {}, html_options = {})
返回含有3个select标签(年,月,日),用来访问模板中声明的对象的基于日期的属性,使用:discard_year,:discare_month,:discard_day可以去掉对应的标签。
使用:order可以传入一个符号组,对标签顺序排序
datetime_select(object_name, method, options = {}, html_options = {})
比上面多了小时和分钟选项
time_select(object_name, method, options = {}, html_options = {})
返回几个select标签(小时,分钟,可选的秒)
select_date(date = Date.current, options = {}, html_options = {})
返回提供的日期的select标签集合(年,月,日)
select_datetime(datetime = Time.current, options = {}, html_options = {})
返回年月日小时分钟的select标签集合,并选定在当前的日期
select_day(date, options = {}, html_options = {})
返回一个选定的当前的日期天数的select标签,提供1到31可选
select_hour(datetime, options = {}, html_options = {})
返回一个选定当前小时数的select标签,提供0到23小时选择
select_minute(datetime, options = {}, html_options = {})
返回一个选定当前分钟数的select标签
select_month(date, options = {}, html_options = {})
返回一个选定当前月份的select标签
select_second(datetime, options = {}, html_options = {})
参考上面
select_year(date, options = {}, html_options = {})
参考上面
select_time(datetime = Time.current, options = {}, html_options = {})
返回小时和分钟的select标签集合
日期选择的通用选项
:discard_type 设为true后就取消了select标签名字部分的类型
:field_name 允许你修改原select标签的自然名字
:include_blank 设置为true则允许填入空值
:prefix 用来修改select标签的日期前缀
:user_hidden设置为true就将日期时间作为一个HTML隐藏输入嵌入到页面上,代替select标签
distance_of_time_in_words(from_time, to_time = 0, include_seconds = false, options = {})
distance_of_time_in_words_to_now(from_time, include_seconds = false)
上面两个看官方文档吧。
FormHelper
文档:http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html
模型对象与表单关联的辅助方法
form_for
<% form_for :person, :url => { :action => "update" } do |f| %> <%= f.error_messages %> First name: <%= f.text_field :first_name %><br /> Last name : <%= f.text_field :last_name %><br /> Biography : <%= f.text_area :biography %><br /> Admin? : <%= f.check_box :admin %><br /> <% end %>
text_field(object_name, method, options = {})
text_field(:post, :title, :size => 20) # => <input type="text" id="post_title" name="post[title]" size="20" value="#{@post.title}" /> text_field(:post, :title, :class => "create_input") # => <input type="text" id="post_title" name="post[title]" value="#{@post.title}" class="create_input" />
password_field(object_name, method, options = {})
password_field(:login, :pass, :size => 20) # => <input type="text" id="login_pass" name="login[pass]" size="20" value="#{@login.pass}" /> password_field(:account, :secret, :class => "form_input") # => <input type="text" id="account_secret" name="account[secret]" value="#{@account.secret}" class="form_input" />
还有其他一些,如:check_box,radio_button,text_area等
文档上没有submit方法,奇怪难道不需要?
FormOptionsHelper
文档:http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html
collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {})
同时返回select和option标签,详情参阅文档
select(object, method, choices, options = {}, html_options = {})
通过提供的object和attribute创建一个select标签和一系列的option标签,初始选中的值为object的attribute。
select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, { :include_blank => true }) 输出如下:
<select name="post[person_id]"> <option value=""></option> <option value="1" selected="selected">David</option> <option value="2">Sam</option> <option value="3">Tobias</option> </select>
option_groups_from_collection_for_select(collection, group_method, group_label_method, option_key_method, option_value_method, selected_key = nil)
返回包含一组option标签的的字符串
options_for_select(container, selected = nil)
接受一个容器,返回一系列的option标签字符串
options_for_select([["Dollar", "$"], ["Kroner", "DKK"]]) <option value="$">Dollar</option>\n<option value="DKK">Kroner</option> options_for_select([ "VISA", "MasterCard" ], "MasterCard") <option>VISA</option>\n<option selected="selected">MasterCard</option>
options_from_collection_for_select(collection, value_method, text_method, selected = nil)
返回一个包含一系列option标签的字符串,value_method用于设置值,text_method设置文本,selected则取匹配value_method作为与选项
其他方法,参阅文档。
FormTagHelper
文档:http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html
check_box_tag(name, value = "1", checked = false, options = {})
创建一个单选框
check_box_tag 'eula', 'accepted', false, :disabled => true # => <input disabled="disabled" id="eula" name="eula" type="checkbox" value="accepted" />
field_set_tag(legend = nil, options = nil, &block)
创建一个fieldset标签
<% field_set_tag 'Your details' do %> <p><%= text_field_tag 'name' %></p> <% end %> # => <fieldset><legend>Your details</legend><p><input id="name" name="name" type="text" /></p></fieldset>
file_field_tag(name, options = {})
创建一个文件上传框
form_tag(url_for_options = {}, options = {}, *parameters_for_url, &block)
创建一个表单,默认为post
<% form_tag '/posts' do -%> <div><%= submit_tag 'Save' %></div> <% end -%> # => <form action="/posts" method="post"><div><input type="submit" name="submit" value="Save" /></div></form>
hidden_field_tag(name, value = nil, options = {})
创建隐藏域
image_submit_tag(source, options = {})
显示一个图片,单击它能引发表单提交
password_field_tag(name = "password", value = nil, options = {})
创建密码输入域
radio_button_tag(name, value, checked = false, options = {})
单选按钮输入域
select_tag(name, option_tags = nil, options = {})
下拉选择框
select_tag "count", "<option>1</option><option>2</option><option>3</option><option>4</option>" # => <select id="count" name="count"><option>1</option><option>2</option> # <option>3</option><option>4</option></select>
submit_tag(value = "Save changes", options = {})
提交按钮
text_area_tag(name, content = nil, options = {})
文本域域
text_field_tag(name, value = nil, options = {})
标准文本输入框
JavaScriptHelper
文档:http://api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptHelper.html
button_to_function(name, *args, &block)
返回一个Button标签,通过其上的onclick事件处理器绑定到一个JavaScript函数的按钮上。
escape_javascript(javascript)
对给定的JavaScript代码转义,处理其中的换行,引号
javascript_tag(content_or_options_with_block = nil, html_options = {}, &block)
输出一个包含内容的SCRIPT标签
link_to_function(name, *args, &block)
返回一个连接,这个连接通过onclick事件处理器绑定到一个函数,并且自动补上return false
NumberHelper
文档:http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html
number_to_currency(number, options = {})
数字转化为货币字符串
number_to_human_size(number, *args)
把数字格式化
number_to_human_size(123) # => 123 Bytes number_to_human_size(1234) # => 1.2 KB number_to_human_size(12345) # => 12.1 KB number_to_human_size(1234567) # => 1.2 MB number_to_human_size(1234567890) # => 1.1 GB number_to_human_size(1234567890123) # => 1.1 TB number_to_human_size(1234567, :precision => 2) # => 1.18 MB number_to_human_size(483989, :precision => 0) # => 473 KB number_to_human_size(1234567, :precision => 2, :separator => ',') # => 1,18 MB
number_to_percentage(number, options = {})
数字转化为百分比
number_to_phone(number, options = {})
格式为一个美国电话号码,可以自定义格式
number_with_delimiter(number, *args)
使用分隔符来组织千位的数字
number_with_precision(number, *args)
指定精确度进行格式化,默认为 3位
RecordTagHelper
文档:http://api.rubyonrails.org/classes/ActionView/Helpers/RecordTagHelper.html
content_tag_for(tag_name, record, *args, &block)
指定ActiveRecord对象来创建一个有id和class参数的HTML
<% content_tag_for(:tr, @person) do %> <td><%=h @person.first_name %></td> <td><%=h @person.last_name %></td> <% end %>
div_for(record, *args, &block)
指定一个ActiveRecord对象产生一个具有id和class的div元素
TagHelper
文档:http://api.rubyonrails.org/classes/ActionView/Helpers/TagHelper.html
以编程的方式生成HTML标签
cdata_section(content)
返回一个CDATA的片段来包装提供的content
content_tag(name, content_or_options_with_block = nil, options = nil, escape = true, &block)
返回包装了内容的HTML代码块标签
escape_once(html)
将一些内容进行转义
tag(name, options = nil, open = false, escape = true)
返回一个名为name的空html标签
TextHelper
文档:http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html
auto_link(text, *args, &block)
将text字符串中的URL和emall转换成可以单击的链接。
concat(string, unused_binding = nil)
在视图中输出文本
cycle(first_value, *values)
创建一个CYCLE对象,他对数组参数循环调用TO_S方法。
excerpt(text, phrase, *args)
提举文本中匹配phrase的部分
highlight(text, phrases, *args)
高亮文本中匹配一个或多个phrase参数的字符串
markdown(text)
返回将文本进行markdown格式化后的HTML代码
pluralize(count, singular, plural = nil)
将单数词转换为复数或指定的数量。
simple_format(text, html_options={})
返回应用程序一个简单格式化规则的文本
textilize(text, *options)
返回由Textile代码文本转换而成的HTML标签
truncate(text, *args)
提供的text参数超过设定的长度则进行截取
truncate("Once upon a time in a world far far away", :length => 14) # => Once upon a...
word_wrap(text, *args)
将文本根据最大行宽加上换行
UrlHelper
文档:http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html
button_to(name, options = {}, html_options = {})
创建一个表单,只包含一个提交按钮。
current_page?(options)
检测给出的选项生成的URL和当前的页面是否相同。
link_to(*args, &block)
查询官方文档。
link_to_if(condition, name, options = {}, html_options = {}, &block)
在条件condition为真时,使用和link_to相同的参数创建创建一个link否则输出name
link_to_unless(condition, name, options = {}, html_options = {}) {|name| ...}
和上例相反
link_to_unless_current(name, options = {}, html_options = {}, &block)
在条件为假时,和link_to形同,否则输出name
mail_to(email_address, name = nil, html_options = {})
生成mailto连接
url_for(options = {})
返回一个由一系列选项得到的URL