irb(main):001:0> require 'active_support'
=> true
irb(main):002:0> require 'active_support/inflector/inflections'
=> true
irb(main):003:0> ActiveSupport::Inflector.pluralize('test')
=> "test"
irb(main):004:0> ActiveSupport::Inflector.singularize('tests')
=> "tests"
irb(main):005:0> ActiveSupport::Inflector.titleize('hat simulator')
=> "Hat Simulator"
<ort::Inflector.tableize("america's number one hat simulator")
=> "america's number one hat simulator"
基本上,这就是问题所在。令我困惑的是,像titleize
这样的方法似乎工作得很好,而tableize
、pluralize
和singularize
却不行。
我是不是忘了要求什么了?
(另外,我注意到this page提供了像"post".pluralize
这样的示例,当我尝试时,它导致了NoMethodError: undefined method 'pluralize' for "post":String
。但也许这可以留到另一个问题中去解决。)
发布于 2011-02-28 18:50:14
无需向String
类添加新方法即可访问#pluralize
:
require 'active_support/inflector'
ActiveSupport::Inflector.pluralize('test')
#=> "tests"
对于String
类:
require 'active_support/core_ext/string'
"test".pluralize
#=> "tests"
它实际调用下面的ActiveSupport::Inflector.pluralize
:
def pluralize
ActiveSupport::Inflector.pluralize(self)
end
https://stackoverflow.com/questions/5140753
复制相似问题