这可行,但看起来有点难看:

s = :shop
s.to_s.pluralize.to_sym   # => :shops

有没有更好的方法来复数 Symbol ?

有帮助吗?

解决方案

你可以将一个复数化 String, ,它代表实际文本。 Symbols 有点抽象。

所以,根据定义,不。但是,也许您可​​以打开 Symbol 类定义并添加:

class Symbol
  def pluralize
    to_s.pluralize.to_sym
  end
end

然后,你可以调用:

:shop.pluralize # => :shops

其他提示

不,就是这样。

如果您愿意更改Ruby的课程,那么这有效:

class Symbol
  def pluralize
    self.to_s.pluralize.to_sym
  end
end

我还没有找到一个更优雅的解决方案,尽管我怀疑是否存在,但它可能只是在实施与我上面相似的东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top