这有效,但看起来有点难看:
s = :shop
s.to_s.pluralize.to_sym # => :shops
有没有更好的方法来复数Symbol
?
答案 0 :(得分:8)
您可以复数String
,代表实际文字。 Symbol
有点抽象。
所以,根据定义,没有。但是,也许您可以打开Symbol类定义并添加:
class Symbol
def pluralize
to_s.pluralize.to_sym
end
end
然后,您可以致电:
:shop.pluralize # => :shops
答案 1 :(得分:4)
不,就是这样。
答案 2 :(得分:3)
如果您愿意改变Ruby的类,那么这可行:
class Symbol
def pluralize
self.to_s.pluralize.to_sym
end
end
我还没有找到一个更优雅的解决方案,虽然我怀疑是否有,它可能只是Rails实现类似于我上面的东西。