Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
fbb6b936
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fbb6b936
编写于
6月 10, 2009
作者:
Y
Yehuda Katz + Carl Lerche
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Document ActionController::Helpers
上级
316fab7d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
71 addition
and
4 deletion
+71
-4
actionpack/lib/action_controller/new_base/helpers.rb
actionpack/lib/action_controller/new_base/helpers.rb
+71
-4
未找到文件。
actionpack/lib/action_controller/new_base/helpers.rb
浏览文件 @
fbb6b936
...
...
@@ -3,6 +3,51 @@
require
'active_support/dependencies'
module
ActionController
# The Rails framework provides a large number of helpers for working with +assets+, +dates+, +forms+,
# +numbers+ and model objects, to name a few. These helpers are available to all templates
# by default.
#
# In addition to using the standard template helpers provided in the Rails framework, creating custom helpers to
# extract complicated logic or reusable functionality is strongly encouraged. By default, the controller will
# include a helper whose name matches that of the controller, e.g., <tt>MyController</tt> will automatically
# include <tt>MyHelper</tt>.
#
# Additional helpers can be specified using the +helper+ class method in <tt>ActionController::Base</tt> or any
# controller which inherits from it.
#
# ==== Examples
# The +to_s+ method from the Time class can be wrapped in a helper method to display a custom message if
# the Time object is blank:
#
# module FormattedTimeHelper
# def format_time(time, format=:long, blank_message=" ")
# time.blank? ? blank_message : time.to_s(format)
# end
# end
#
# FormattedTimeHelper can now be included in a controller, using the +helper+ class method:
#
# class EventsController < ActionController::Base
# helper FormattedTimeHelper
# def index
# @events = Event.find(:all)
# end
# end
#
# Then, in any view rendered by <tt>EventController</tt>, the <tt>format_time</tt> method can be called:
#
# <% @events.each do |event| -%>
# <p>
# <% format_time(event.time, :short, "N/A") %> | <%= event.name %>
# </p>
# <% end -%>
#
# Finally, assuming we have two event instances, one which has a time and one which does not,
# the output might look like this:
#
# 23 Aug 11:30 | Carolina Railhawks Soccer Match
# N/A | Carolina Railhaws Training Workshop
#
module
Helpers
extend
ActiveSupport
::
Concern
...
...
@@ -10,8 +55,9 @@ module Helpers
included
do
# Set the default directory for helpers
class_inheritable_accessor
:helpers_dir
self
.
helpers_dir
=
(
defined?
(
RAILS_ROOT
)
?
"
#{
RAILS_ROOT
}
/app/helpers"
:
"app/helpers"
)
extlib_inheritable_accessor
(
:helpers_dir
)
do
defined?
(
RAILS_ROOT
)
?
"
#{
RAILS_ROOT
}
/app/helpers"
:
"app/helpers"
end
end
module
ClassMethods
...
...
@@ -22,8 +68,9 @@ def inherited(klass)
# The +helper+ class method can take a series of helper module names, a block, or both.
#
# * <tt>*args</tt>: One or more modules, strings or symbols, or the special symbol <tt>:all</tt>.
# * <tt>&block</tt>: A block defining helper methods.
# ==== Parameters
# *args<Array[Module, Symbol, String, :all]>
# block<Block>:: A block defining helper methods
#
# ==== Examples
# When the argument is a string or symbol, the method will provide the "_helper" suffix, require the file
...
...
@@ -64,6 +111,10 @@ def helper(*args, &block)
# controller and makes them available to the view:
# helper_attr :name
# attr_accessor :name
#
# ==== Parameters
# *attrs<Array[String, Symbol]>:: Names of attributes to be converted
# into helpers.
def
helper_attr
(
*
attrs
)
attrs
.
flatten
.
each
{
|
attr
|
helper_method
(
attr
,
"
#{
attr
}
="
)
}
end
...
...
@@ -74,6 +125,22 @@ def helpers
end
private
# Returns a list of modules, normalized from the acceptable kinds of
# helpers with the following behavior:
# String or Symbol:: :FooBar or "FooBar" becomes "foo_bar_helper",
# and "foo_bar_helper.rb" is loaded using require_dependency.
# :all:: Loads all modules in the #helpers_dir
# Module:: No further processing
#
# After loading the appropriate files, the corresponding modules
# are returned.
#
# ==== Parameters
# args<Array[String, Symbol, Module, all]>:: A list of helpers
#
# ==== Returns
# Array[Module]:: A normalized list of modules for the list of
# helpers provided.
def
_modules_for_helpers
(
args
)
args
.
flatten
.
map!
do
|
arg
|
case
arg
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录