我的模型中有一个对应于数据库中的列的枚举.

enum个看起来像:

  enum sale_info: { plan_1: 1, plan_2: 2, plan_3: 3, plan_4: 4, plan_5: 5 }

我怎样才能得到整数值?

我试过了

Model.sale_info.to_i

但这只返回0.

推荐答案

可以从枚举所在的类中获取枚举的整数值:

Model.sale_infos # Pluralized version of the enum attribute name

返回一个如下的散列:

{ "plan_1" => 1, "plan_2" => 2 ... }

然后可以使用Model类实例中的sale_info值访问整数值for that instance:

my_model = Model.find(123)
Model.sale_infos[my_model.sale_info] # Returns the integer value

Ruby-on-rails相关问答推荐

如何判断字符串中是否包含列值

如何在 JR gem 中指定每个资源的最大页面大小配置

Sidekiq with Rails - 控制台与 rake 任务中的不同 Sidekiq 实例

组合 active_record 模型并按共享属性排序

在单个继承表和另一个表中的类之间建立多对多关联

在 Rails 3 中,如何在路由中使用锚点作为 ID?

Rails - 如何使用子对象的嵌套属性和强参数填充父对象ID?

如果 URL 不存在,请将 http(s) 添加到 URL?

使用 Devise 令牌登录,这是内置的吗?

Rails Mailer Net::OpenTimeout: execution expired 仅在生产服务器上出现异常

从 Rails 模型内部访问翻译文件 (i18n)

Rails 引擎中的迁移?

如何将变量 link_to 定义为外部 URL

Test::Unit Rails - 如何断言一个数字大于另一个?

Rails 3 返回 HTTP 406 Not Acceptable?

如何在 Rails 中设置路由的默认格式?

用于在多行上链接调用的 Ruby 约定

简单的 rails rake 任务拒绝运行并出现错误不知道如何构建任务,为什么?

Ruby 中的类别名

如何删除特殊字符?