`
酷的飞上天空
  • 浏览: 521748 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

Rails部分辅助方法

阅读更多

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

 

 

 

 

分享到:
评论

相关推荐

    rails2-sample

    Rails提供了一系列辅助方法来简化HTML的生成和页面的布局。同时,表单是Web应用中不可或缺的部分,Rails提供了丰富的API来处理表单的创建和验证。此外,布局(Layouts)允许开发者在多个页面中重用公共的HTML代码,...

    ruby on rails 2.3.5 api html版

    5. **Helper方法**:这些辅助方法在视图层提供便利的功能,如HTML辅助方法,用于生成HTML元素。 6. **ActiveSupport**:这是Rails的一部分,包含大量实用的工具类和方法,如时间/日期处理、JSON解析和编码等。 7. ...

    rails 项目起步示例

    - **Helper**:辅助方法,提供在视图中复用的函数。 - **Controller**:处理HTTP请求,调用模型并决定如何呈现视图。 - **Session** 和 **Cookie**:用于跟踪用户状态,如登录信息。 - **Authentication** 和 **...

    Ruby on Rails 指南 v5.0.1 中文版

    - **处理基本表单**:介绍如何使用Rails提供的表单辅助方法创建HTML表单。 - **处理模型对象**:展示如何与模型对象交互,自动生成表单元素。 - **快速创建选择列表**:指导如何使用辅助方法快速生成下拉列表等控件...

    Ruby on Rails源代码

    5. **帮助器**:`app/helpers`目录包含应用中的各种辅助方法,用于在视图中重用代码。查看源代码,你可以理解如何定义和使用帮助器以提高代码复用性。 6. **测试**:Rails提供了内置的测试框架Minitest,开发者通常...

    Ruby on Rails中文指南

    6. **辅助方法(Helper Methods)**:辅助方法是为了保持视图整洁而创建的函数,它们可以提供重用的代码或复杂的逻辑。 7. **哈希与符号化键(Hashes and Symbolized Keys)**:在Rails中,使用符号作为哈希键可以...

    ruby on rails api

    控制器包含了各种助手方法,用于辅助处理请求和响应。 3. **ActionView**:负责生成HTTP响应的视图部分,可以是HTML、JSON或XML等格式。Rails提供了强大的模板系统和局部变量,使得开发者能轻松创建动态内容。 4. ...

    Apress - Practical Rails Projects (Oct 2007)

    视图方面,会涵盖ERB模板语言的使用,以及如何利用辅助方法(Helper Methods)来增强视图的功能。控制器部分则会介绍动作、HTTP请求和响应,以及如何使用过滤器来实现逻辑控制。 书中还会涉及Rails的测试驱动开发...

    rails查询学习笔记

    而 "工具" 可能指的是Rails中用于辅助查询的工具或gem,如ActiveRecord的 scopes 和 relations,或者像ransack这样的高级查询库。 在"Winkee_TreeView"这个文件名中,"TreeView"通常是指一种数据展示方式,可能在...

    Ruby on Rails入门权威经典

    视图(View)部分主要涉及ERB(Embedded Ruby)模板语言和辅助方法,以及如何使用布局和部分视图来组织界面。此外,书中还会探讨如何利用Rails的强大力量,如局部变量、实例变量和实例方法来传递数据给视图。 控制...

    ruby_on_rails 源代码上

    Rails还提供了辅助方法,如链接生成、表单构建等,以简化视图代码。 6. **控制器** 控制器是MVC架构中的中枢,处理HTTP请求并调用模型进行业务处理。它负责填充视图的数据,并决定应重定向到哪个视图。Rails中的...

    Rails入门教程一(翻译).pdf

    至于视图,会讲解ERB(Embedded Ruby)模板语法,如何在HTML中嵌入Ruby代码,以及辅助方法(Helper Methods)的使用,它们能帮助开发者更好地组织和复用视图代码。 最后,教程可能会简要介绍测试(Testing),Rails...

    ruby on rails 教程源码

    - **helpers**: 辅助方法存储在`application_helper.rb`等文件中,可跨视图共享代码。 4. **db**目录:包含数据库迁移文件,如`migrate`子目录下的`.rb`文件,它们描述了数据库结构的变化。 5. **bin**目录:包含...

    Ajax on Rails (PPT)

    通过以上分析可以看出,“Ajax on Rails”PPT文档涵盖了从理论到实践的多个层面,不仅介绍了Prototype和Scriptaculous等JavaScript库的基本概念,还深入探讨了它们与Rails框架结合的具体应用方法。这对于希望学习和...

    Ruby On Rails开发实例-源代码

    7. **助手中方法**:`app/helpers/application_helper.rb`,定义可复用的视图辅助方法。 8. **初始化文件**:`config/initializers/`目录下存放应用启动时执行的代码。 9. **其他辅助文件**:如`Gemfile`, `...

    rails-beginner-s-guide

    最后,书中还介绍了Rails中的表单构建器(Form Builder),渲染器(Renderer)和railties辅助工具(Helpers)。Rails的表单构建器简化了表单创建过程,渲染器则用于将数据渲染为不同的视图格式,而railties则是Rails...

    Rails API

    6. **辅助方法(Helper Methods)**:这些方法提供了一种组织和重用视图逻辑的方式,帮助保持视图代码的整洁。 7. ** erb模板引擎**:用于创建动态HTML页面,允许在HTML中嵌入Ruby代码。 8. **gem**:Ruby的包管理...

Global site tag (gtag.js) - Google Analytics