代码之家  ›  专栏  ›  技术社区  ›  Obromios

如何对枚举的级别进行推理

  •  -2
  • Obromios  · 技术社区  · 6 年前

    enum access: [:basic, :silver, :gold, :platinum]
    

    我想解释一下帐户的级别,例如

    account.gold!
    account.access < 'silver'
    

    但是 account.access < 'silver' true ,大概是因为 < override 对于 string

    1 回复  |  直到 6 年前
        1
  •  0
  •   Obromios    6 年前

    如果数据库中access的底层值是整数,那么可以使用rails来完成 _before_type_cast

      def access_lt(level)
        access_before_type_cast < Account.accesses[level]
      end
    

    account.gold!
    account.access_lt 'silver' # false