如何在 Ruby (on Rails) 中对符号进行复数形式?
-
09-10-2019 - |
题
这可行,但看起来有点难看:
s = :shop
s.to_s.pluralize.to_sym # => :shops
有没有更好的方法来复数 Symbol
?
解决方案
你可以将一个复数化 String
, ,它代表实际文本。 Symbol
s 有点抽象。
所以,根据定义,不。但是,也许您可以打开 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
我还没有找到一个更优雅的解决方案,尽管我怀疑是否存在,但它可能只是在实施与我上面相似的东西。
不隶属于 StackOverflow