ruby - 无法使用 ActiveSupport::Inflector 进行复数化/单数化(在 irb 中)

标签 ruby activesupport

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 等方法似乎工作正常,但 tableizepluralizesingularize 却不行.

我是不是忘记要求什么了?

(另外,我注意到 this page 提供了类似 "post".pluralize 的示例,当我尝试时,它导致了 NoMethodError: undefined method 'pluralize' for "post ":String。但也许这是为了另一个问题而保留的东西。)

最佳答案

访问#pluralize而不向String类添加新方法:

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

关于ruby - 无法使用 ActiveSupport::Inflector 进行复数化/单数化(在 irb 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5140753/

相关文章:

javascript - Watir - 如何访问通过 Javascript 生成的输入类型 = 文本元素?

arrays - 数组方法与哈希

ruby-on-rails - 如何避免 activesupport 中的循环参数引用警告

arrays - 从数组中提取重复元素(范围错误的错误值)

ruby - 将 sidekiq 连接到 twemproxy(胡桃夹子)

ruby - 在 String 子类上覆盖 =~ 方法会产生不一致

ruby - 重命名由 Array.new 创建的数组

ruby - 如何修复 activesupport 3.0.0 与 2.x 相比的行为差异?

ruby-on-rails - 未初始化常量 ActiveSupport::Concern (NameError)

ruby - 对数组求和