2

在 Rails 应用程序中,我有许多测量值以人类可读的形式显示,其中包括值和单位。有时单位字符串需要复数形式,如“1 分钟,2 分钟”,但有时不需要“1 公斤,2 公斤”。inflect.uncountable我可以通过在 inflections.rb列表中添加“kg”来解决这个问题。但是,将 '%' 添加到列表中没有效果。我在控制台中确认 '%' 已添加到 @uncountables,但调用pluralize(90, '%')仍然返回90 %s

我可以通过这样做来解决这个问题,inflect.irregular '%', '%'但这似乎不是不规则的正确使用。

有什么我可以添加的东西,比如转义字符,让轨道识别不可数数组中的 '%' 吗?或者,有没有更好的方法来处理这个变化之外的问题?

作为参考,inflections.rb 现在看起来像

ActiveSupport::Inflector.inflections(:en) do |inflect|
  # inflect.plural /^(ox)$/i, '\1en'
  # inflect.singular /^(ox)en/i, '\1'
  inflect.irregular '%', '%'
  inflect.uncountable %w( bpm kg mL )
end
4

1 回答 1

2

inflect.uncountable仅适用于单词,或者更好地说,适用于 Regex 认为是单词的任何内容。我不确定这是实现的缺陷还是预期的行为。

inflect.irregular '%', '%'对我来说似乎是一个完美的解决方法。

于 2017-08-23T17:10:08.720 回答