`

rails 部分辅助方法

阅读更多

转载自http://314858770.iteye.com/blog/691999

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内部调用

如:

Ruby代码  收藏代码
  1. image_path("icons/edit.png")                               # => /images/icons/edit.png  
  2. image_path("/icons/edit.png")                              # => /icons/edit.png  

 
image_tag(source, options = {})

返回一个image标签,source参数可以是完整路径,也可以是在public/images目录下的文件名

参数如下:

:alt ,图片无法显示时出现的提示信息

:size,支持以width * height的形式定义宽高,如:30*40

:mouseover 可以用于图片切换

Ruby代码  收藏代码
  1. image_tag("icon")  # =>  
  2.   <img src="/images/icon" alt="Icon" />  
  3. image_tag("icon.png":size => "16x10":alt => "Edit Entry")  # =>  
  4.   <img src="/images/icon.png" width="16" height="10" alt="Edit Entry" />  
  5. image_tag("mouse.png":mouseover => "/images/mouse_over.png"# =>  
  6.   <img src="/images/mouse.png" onmouseover="this.src='/images/mouse_over.png'" onmouseout="this.src='/images/mouse.png'" alt="Mouse" />  
  7. image_tag("mouse.png":mouseover => image_path("mouse_over.png")) # =>  
  8.   <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目录下的文件名,也可以传递文档根目录的完整路径

Ruby代码  收藏代码
  1. javascript_include_tag "xmlhr" # =>  
  2.   <script type="text/javascript" src="/javascripts/xmlhr.js"></script>  
  3.   
  4. javascript_include_tag "xmlhr.js" # =>  
  5.   <script type="text/javascript" src="/javascripts/xmlhr.js"></script>  
  6. javascript_include_tag "common.javascript""/elsewhere/cools" # =>  
  7.   <script type="text/javascript" src="/javascripts/common.javascript"></script>  
  8.   <script type="text/javascript" src="/elsewhere/cools.js"></script>  
  9.   
  10. javascript_include_tag "http://www.railsapplication.com/xmlhr" # =>  
  11.   <script type="text/javascript" src="http://www.railsapplication.com/xmlhr.js"></script>  

 

javascript_path(source)

计算JavaScript资源的路径,如果没有.js扩展名,则此方法自动加上。在javascript_include_tag内部调用此方法。

Ruby代码  收藏代码
  1. javascript_path "xmlhr" # => /javascripts/xmlhr.js  
  2. javascript_path "dir/xmlhr.js" # => /javascripts/dir/xmlhr.js  
  3. javascript_path "/dir/xmlhr" # => /dir/xmlhr.js  

 

stylesheet_link_tag(*sources)

返回source参数的样式表link标签。

Ruby代码  收藏代码
  1. stylesheet_link_tag "style" # =>  
  2.   <link href="/stylesheets/style.css" media="screen" rel="stylesheet" type="text/css" />  
  3.   
  4. stylesheet_link_tag "random.styles""/css/stylish" # =>  
  5.   <link href="/stylesheets/random.styles" media="screen" rel="stylesheet" type="text/css" />  
  6.   <link href="/css/stylish.css" media="screen" rel="stylesheet" type="text/css" />  

 

 stylesheet_path(source)

计算置于public/stylesheets目录下的样式表资源路径

Ruby代码  收藏代码
  1. stylesheet_path "style" # => /stylesheets/style.css  
  2. stylesheet_path "dir/style.css" # => /stylesheets/dir/style.css  
  3. 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

Ruby代码  收藏代码
  1. <% form_for :person:url => { :action => "update" } do |f| %>  
  2.   <%= f.error_messages %>  
  3.   First name: <%= f.text_field :first_name %><br />  
  4.   Last name : <%= f.text_field :last_name %><br />  
  5.   Biography : <%= f.text_area :biography %><br />  
  6.   Admin?    : <%= f.check_box :admin %><br />  
  7. <% end %>  

 

text_field(object_name, method, options = {})

Ruby代码  收藏代码
  1. text_field(:post:title:size => 20)  
  2. # => <input type="text" id="post_title" name="post[title]" size="20" value="#{@post.title}" />  
  3.   
  4. text_field(:post:title:class => "create_input")  
  5. # => <input type="text" id="post_title" name="post[title]" value="#{@post.title}" class="create_input" />  

 

password_field(object_name, method, options = {})

Ruby代码  收藏代码
  1. password_field(:login:pass:size => 20)  
  2. # => <input type="text" id="login_pass" name="login[pass]" size="20" value="#{@login.pass}" />  
  3.   
  4. password_field(:account:secret:class => "form_input")  
  5. # => <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。

Ruby代码  收藏代码
  1. select("post""person_id", Person.all.collect {|p| [ p.name, p.id ] }, { :include_blank => true })  
  2. 输出如下:  
Ruby代码  收藏代码
  1. <select name="post[person_id]">  
  2.   <option value=""></option>  
  3.   <option value="1" selected="selected">David</option>  
  4.   <option value="2">Sam</option>  
  5.   <option value="3">Tobias</option>  
  6. </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标签字符串

Ruby代码  收藏代码
  1. options_for_select([["Dollar""$"], ["Kroner""DKK"]])  
  2.   <option value="$">Dollar</option>\n<option value="DKK">Kroner</option>  
  3.   
  4. options_for_select([ "VISA""MasterCard" ], "MasterCard")  
  5.   <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 = {})

创建一个单选框

Ruby代码  收藏代码
  1. check_box_tag 'eula''accepted'false:disabled => true  
  2. # => <input disabled="disabled" id="eula" name="eula" type="checkbox" value="accepted" />  

 

field_set_tag(legend = nil, options = nil, &block)

创建一个fieldset标签

Ruby代码  收藏代码
  1. <% field_set_tag 'Your details' do %>  
  2.   <p><%= text_field_tag 'name' %></p>  
  3. <% end %>  
  4. # => <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

Ruby代码  收藏代码
  1. <% form_tag '/posts' do -%>  
  2.   <div><%= submit_tag 'Save' %></div>  
  3. <% end -%>  
  4. # => <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 = {})

下拉选择框

Ruby代码  收藏代码
  1. select_tag "count""<option>1</option><option>2</option><option>3</option><option>4</option>"  
  2. # => <select id="count" name="count"><option>1</option><option>2</option>  
  3. #    <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)

把数字格式化

Ruby代码  收藏代码
  1. number_to_human_size(123)                                          # => 123 Bytes  
  2. number_to_human_size(1234)                                         # => 1.2 KB  
  3. number_to_human_size(12345)                                        # => 12.1 KB  
  4. number_to_human_size(1234567)                                      # => 1.2 MB  
  5. number_to_human_size(1234567890)                                   # => 1.1 GB  
  6. number_to_human_size(1234567890123)                                # => 1.1 TB  
  7. number_to_human_size(1234567, :precision => 2)                     # => 1.18 MB  
  8. number_to_human_size(483989, :precision => 0)                      # => 473 KB  
  9. 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

Ruby代码  收藏代码
  1. <% content_tag_for(:tr@persondo %>  
  2.   <td><%=h @person.first_name %></td>  
  3.   <td><%=h @person.last_name %></td>  
  4. <% 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参数超过设定的长度则进行截取

Ruby代码  收藏代码
  1. truncate("Once upon a time in a world far far away":length => 14)  
  2. # => 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

分享到:
评论

相关推荐

    Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rar

    7.3 迭代B3:用辅助方法格式化价格 70 7.4 迭代B4:链接到购物车 70 第8章 任务C:创建购物车 73 8.1 Session 73 8.2 迭代C1:创建购物车 76 8.3 迭代C2:更聪明的购物车 78 8.4 迭代C3:处理错误 81 8.5 迭代C4:...

    css3buttons_rails_helpers:Rails助手基于'css3-github-buttons'生成漂亮的css3按钮

    该css3buttons宝石是一小部分的设计工作与惊人的结合辅助方法。 这些帮助程序使Rails开发人员可以快速轻松地利用这个出色CSS库-不会使您的视图以及对link_to , button_to和submit_tag调用变得混乱。 1.0版终于...

    waiable:不同能力的Rails Web Accessibility Initiative

    安装将其添加到您的Gemfile中: gem 'waiable' 运行以下命令进行安装: bundle install用法WAIAble gem将添加不同的辅助功能,以使屏幕阅读器用户和键盘用户可以访问rails表单。 在视觉上,这不会删除或更改rails ...

    rails-url-helpers-readme-online-web-sp-000

    与路由辅助方法相比,使用硬编码路径有什么现实世界的区别?假设您在纽约市有一个会议,而您想从城市的一侧到另一侧。您有几种不同的选择: 步行穿越街道 打车 步行就像在硬编码您的路线。从技术上讲,它可以工作。...

    CSCE431-NoNameYet:CSCE 431 - 项目(暂无名称)

    布拉索斯谷辅助生活中心项目 可在此处找到 Pivotal Tracker: : 为了使用 PostgreSQL Studio 添加主键,将数据类型设置为串行,然后编辑约束。 用于生产: 创建/确定一个 Google 帐户来管理日历 创建一个新日历...

    CodeIgniter:php敏捷开发框架web快速开发详解

    CI 把内部的复杂部分悄悄地完成了,举例来说,实现了列举近百种不同附件的 MIME 类型的功能。所以它知道你的相片 photo1.jpg 是一个“image/jpeg”MIME 类型。因此它在你附件的适当位置填写必要的限制符号,它处理...

    JAVA上百实例源码以及开源项目

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    JAVA上百实例源码以及开源项目源代码

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    java开源包1

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包2

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包3

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包6

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包5

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包8

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包7

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

Global site tag (gtag.js) - Google Analytics