这可行,但看起来有点难看:
s = :shop
s.to_s.pluralize.to_sym # => :shops
有没有更好的方法来复数 a Symbol
?
这可行,但看起来有点难看:
s = :shop
s.to_s.pluralize.to_sym # => :shops
有没有更好的方法来复数 a Symbol
?
您可以将 a 复数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
我还没有找到更优雅的解决方案,虽然我怀疑如果有,它可能只是 Rails 实现了类似于我上面的东西。