【问题标题】:Rails field enum as_json : get integer instead of stringRails 字段枚举 as_json :获取整数而不是字符串
【发布时间】:2015-02-07 19:50:37
【问题描述】:

在我的项目中,我有一个带有性别枚举的用户模型:

class User < ActiveRecord::Base
   enum gender: [:female, :male]
end

当我在我的一个对象上调用as_json 时,我得到字符串“female”或“male”。有没有办法呈现整数值而不是字符串?

【问题讨论】:

  • 我也遇到过这种情况……所以Rails基本上是在数据中泄露了一个变量名,奇怪

标签: ruby-on-rails


【解决方案1】:

我会尝试查看文档

http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html

为此,也许您可​​以使用哈希代替

class User < ActiveRecord::Base
  enum gender: { female: 0, male: 1 }
end

希望对你有所帮助

【讨论】:

  • 我仍然用as_jon得到字符串值
  • 您使用散列来明确告诉哪个值映射到哪个条目。当你使用数组时,它们的索引就是它们的值。
【解决方案2】:

User.genders 是您的枚举和整数值的数组。所以,请使用User.genders[@user.gender].to_json

如果您对默认的 to_json 不满意,请调查 jBuilder 以创建与您完全相同的 JSON

【讨论】:

  • 我不只是调用“性别”字段。我正在这样做@user.as_jon
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
相关资源
最近更新 更多