Naming & Name
内省机制,主要负责将对象转换成对应的字符串。对于我们 Web 开发者来说不常用,但对于配合 Action Controller, Action View 工作很重要。
实例方法:
model_name
类方法(调用方式奇怪,一般我们不会使用):
param_key
route_key
singular_route_key
singular # 单数
plural # 复数
uncountable? # 不可数?
方便我们把,字符串、符号、实例对象等转换成相关 model 进行处理。
model_name
返回的是 Name 的实例对象。Name 和普通字符串类似,但提供方法:
human
和
attr_reader :singular, :plural, :element, :collection,
:singular_route_key, :route_key, :param_key, :i18n_key,
:name
alias_method :cache_key, :collection
可将字符串转换成对用户更友好的形式展现。
model_name
把"各种对象"转换成对应的"字符串",而 View 要的正是"字符串"。比如以下几个方法:
Action View
form_for
button
submit
fields_for
dom_id
dom_class
Action Controller
wrap_parameters
Action Dispatch
polymorphic_url
polymorphic_path
相关 ActionController::ModelNaming 和 ActionView::ModelNaming.
Note: 调用此模块的方式是 extend ActiveModel::Naming,不是 include;另外注意实例方法与类方法的调用方式是不一样的。
最后更新于
这有帮助吗?