Как плюял символ в Ruby (на рельсах)?
-
09-10-2019 - |
Вопрос
Это работает, но выглядит немного уродливым:
s = :shop
s.to_s.pluralize.to_sym # => :shops
Есть ли более приятный способ плюрализировать Symbol
?
Решение
Вы можете плюрализировать String
, который представляет собой фактический текст. Symbol
S немного более абстрактно.
Итак, по определению нет. Однако, возможно, вы можете открыть определение класса символов и добавить:
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
Мне еще предстоит найти более элегантное решение, хотя я подозреваю, что, вероятно, это, вероятно, просто будут рельсы, внедряющие что-то похожее на то, что у меня выше.
Не связан с StackOverflow