当前位置:首页 > 开发 > 编程语言 > Ruby > 正文

Rails部分辅助方法

发表于: 2010-06-14   作者:酷的飞上天空   来源:转载   浏览:
摘要: AssetTagHelper 官方链接:http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html   auto_discovery_link_tag(type = :rss, url_options = {}, tag_options = {}) 返回一个连接标签,用于让浏览器或新闻阅读

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部分辅助方法

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
  在实际的程序中,除了在View中展示数据外,还需要在View与后台的数据进行交互,在View中我就需
现有的HTML辅助方法 ASP.NET MVC 1中发布了一套HTML辅助方法,可以用来在视图模板中帮助生成HTML界
本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。
本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。
本人正计划设计并开发一个模拟器,辅助进行cocos2d-x的部分开发。首先要实现的功能是打开并显示plis
前言:前面我们已经简单的介绍过了MVC如何Jquery,因为我们如果使用Ajax的话必须要了解Jquery,这篇
我们都知道在AjaxPro的方法AjaxPro.Utility.RegisterTypeForAjax(typeof(所在类的类名));会将标记有
MVC中的辅助方法与ASP.NET中的服务器控件类似,都是用于生成特定的HTML代码。MVC提供了三个辅助类,
今天尝试了更新instant rails的版本,用gem update --system命令,结果报错: Error: While executi
安装IIS。 控制面板->程序和功能->打开或关闭Windows功能 再开启IIS即可 下载Windows Web平台
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号