Вопрос

Это работает, но выглядит немного уродливым:

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

Есть ли более приятный способ плюрализировать Symbol ?

Это было полезно?

Решение

Вы можете плюрализировать 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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top