2015-02-07 44 views
2

在我谟,我有一个用户模型性别枚举:Rails的领域枚举as_json:得到整数,而不是字符串

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

,当我在我的对象之一调用as_json,我得到的字符串“女性或男性”。有什么办法来呈现整数值,而不是字符串?

+0

我正好遇到这也太...所以基本上Rails的泄漏变量名到数据,离奇 – trapper 2017-07-05 06:27:12

回答

0

我会尝试寻找在文档

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

对于这一点,也许你可以使用哈希代替

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

希望的任何帮助

+0

我仍然使用'as_jon'获取字符串值 – cappie013 2015-02-07 19:59:57

+0

您可以使用散列值来明确地指出哪个值映射到哪个条目。当你使用数组时,它们的索引就是它们的值。 – aks 2016-08-22 05:29:37

0

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

如果你不喜欢默认的,to_json,调查jBuilder创建精确的JSON你

+0

我不只是调用“性别”字段。我正在做'@ user.as_jon' – cappie013 2015-02-08 00:47:42

+0

查看修改后的帖子。 – dankohn 2015-02-08 02:23:28