如何在Ruby(on Rails)中复数符号?

时间:2010-12-12 23:49:00

标签: ruby-on-rails ruby pluralize

这有效,但看起来有点难看:

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

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

3 个答案:

答案 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实现类似于我上面的东西。