转载自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内部调用
如:
- 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
相关推荐
Rails提供了一系列辅助方法来简化HTML的生成和页面的布局。同时,表单是Web应用中不可或缺的部分,Rails提供了丰富的API来处理表单的创建和验证。此外,布局(Layouts)允许开发者在多个页面中重用公共的HTML代码,...
5. **Helper方法**:这些辅助方法在视图层提供便利的功能,如HTML辅助方法,用于生成HTML元素。 6. **ActiveSupport**:这是Rails的一部分,包含大量实用的工具类和方法,如时间/日期处理、JSON解析和编码等。 7. ...
- **Helper**:辅助方法,提供在视图中复用的函数。 - **Controller**:处理HTTP请求,调用模型并决定如何呈现视图。 - **Session** 和 **Cookie**:用于跟踪用户状态,如登录信息。 - **Authentication** 和 **...
- **处理基本表单**:介绍如何使用Rails提供的表单辅助方法创建HTML表单。 - **处理模型对象**:展示如何与模型对象交互,自动生成表单元素。 - **快速创建选择列表**:指导如何使用辅助方法快速生成下拉列表等控件...
5. **帮助器**:`app/helpers`目录包含应用中的各种辅助方法,用于在视图中重用代码。查看源代码,你可以理解如何定义和使用帮助器以提高代码复用性。 6. **测试**:Rails提供了内置的测试框架Minitest,开发者通常...
6. **辅助方法(Helper Methods)**:辅助方法是为了保持视图整洁而创建的函数,它们可以提供重用的代码或复杂的逻辑。 7. **哈希与符号化键(Hashes and Symbolized Keys)**:在Rails中,使用符号作为哈希键可以...
控制器包含了各种助手方法,用于辅助处理请求和响应。 3. **ActionView**:负责生成HTTP响应的视图部分,可以是HTML、JSON或XML等格式。Rails提供了强大的模板系统和局部变量,使得开发者能轻松创建动态内容。 4. ...
视图方面,会涵盖ERB模板语言的使用,以及如何利用辅助方法(Helper Methods)来增强视图的功能。控制器部分则会介绍动作、HTTP请求和响应,以及如何使用过滤器来实现逻辑控制。 书中还会涉及Rails的测试驱动开发...
而 "工具" 可能指的是Rails中用于辅助查询的工具或gem,如ActiveRecord的 scopes 和 relations,或者像ransack这样的高级查询库。 在"Winkee_TreeView"这个文件名中,"TreeView"通常是指一种数据展示方式,可能在...
视图(View)部分主要涉及ERB(Embedded Ruby)模板语言和辅助方法,以及如何使用布局和部分视图来组织界面。此外,书中还会探讨如何利用Rails的强大力量,如局部变量、实例变量和实例方法来传递数据给视图。 控制...
Rails还提供了辅助方法,如链接生成、表单构建等,以简化视图代码。 6. **控制器** 控制器是MVC架构中的中枢,处理HTTP请求并调用模型进行业务处理。它负责填充视图的数据,并决定应重定向到哪个视图。Rails中的...
至于视图,会讲解ERB(Embedded Ruby)模板语法,如何在HTML中嵌入Ruby代码,以及辅助方法(Helper Methods)的使用,它们能帮助开发者更好地组织和复用视图代码。 最后,教程可能会简要介绍测试(Testing),Rails...
- **helpers**: 辅助方法存储在`application_helper.rb`等文件中,可跨视图共享代码。 4. **db**目录:包含数据库迁移文件,如`migrate`子目录下的`.rb`文件,它们描述了数据库结构的变化。 5. **bin**目录:包含...
通过以上分析可以看出,“Ajax on Rails”PPT文档涵盖了从理论到实践的多个层面,不仅介绍了Prototype和Scriptaculous等JavaScript库的基本概念,还深入探讨了它们与Rails框架结合的具体应用方法。这对于希望学习和...
7. **助手中方法**:`app/helpers/application_helper.rb`,定义可复用的视图辅助方法。 8. **初始化文件**:`config/initializers/`目录下存放应用启动时执行的代码。 9. **其他辅助文件**:如`Gemfile`, `...
最后,书中还介绍了Rails中的表单构建器(Form Builder),渲染器(Renderer)和railties辅助工具(Helpers)。Rails的表单构建器简化了表单创建过程,渲染器则用于将数据渲染为不同的视图格式,而railties则是Rails...
6. **辅助方法(Helper Methods)**:这些方法提供了一种组织和重用视图逻辑的方式,帮助保持视图代码的整洁。 7. ** erb模板引擎**:用于创建动态HTML页面,允许在HTML中嵌入Ruby代码。 8. **gem**:Ruby的包管理...