【问题标题】:How to pluralize a symbol in Ruby (on Rails)?如何在 Ruby(在 Rails 上)中复数一个符号?
【发布时间】:2011-05-24 09:55:29
【问题描述】:

这可行,但看起来有点难看:

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

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

【问题讨论】:

  • 不,因为符号不是用来改变的(它们是不可变的)。

标签: ruby-on-rails ruby pluralize


【解决方案1】:

您可以将String 复数,表示实际文本。 Symbols 有点抽象。

所以,根据定义,不。但是,也许您可​​以打开 Symbol 类定义并添加:

class Symbol
  def pluralize
    to_s.pluralize.to_sym
  end
end

然后,您可以调用:

:shop.pluralize # => :shops

【讨论】:

    【解决方案2】:

    不,就是这样。

    【讨论】:

      【解决方案3】:

      如果您愿意更改 Ruby 的类,那么这很有效:

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

      我还没有找到更优雅的解决方案,虽然我怀疑如果有,它可能只是 Rails 实现了类似于我上面的东西。

      【讨论】:

        猜你喜欢
        • 2021-02-05
        • 2017-12-08
        • 2018-06-30
        • 2014-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-21
        相关资源
        最近更新 更多