Как плюрализовать символ в Ruby (on Rails)?

это работает, но выглядит немного некрасиво:

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

есть ли более приятный способ множественного числа a Symbol ?

3 ответов


вы можете множественное число String, который представляет сам текст. Symbols немного более абстрактны.

так, по определению, нет. Однако, возможно, вы могли бы открыть определение класса символов и добавить:

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

мне еще предстоит найти более элегантное решение, хотя я подозреваю, что если бы оно было, это, вероятно, просто рельсы, реализующие что-то подобное тому, что у меня есть выше.