Как перемножить символ в Ruby (на Rails)? - PullRequest
6 голосов
/ 13 декабря 2010

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

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

Есть ли лучший способ сделать множественное число Symbol?

Ответы [ 3 ]

8 голосов
/ 13 декабря 2010

Вы можете использовать множественное число String, которое представляет фактический текст.Symbol s немного более абстрактны.

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

class Symbol
  def pluralize
    to_s.pluralize.to_sym
  end
end

Затем вы можете просто позвонить:

:shop.pluralize # => :shops
4 голосов
/ 13 декабря 2010

Нет, вот так.

3 голосов
/ 13 декабря 2010

Если вам удобно изменять классы Ruby, то это работает:

class Symbol
  def pluralize
    self.to_s.pluralize.to_sym
  end
end

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

...