gpt4 book ai didi

ruby-on-rails - Ruby on Rails 3 - to_json 不包括所有属性

转载 作者:行者123 更新时间:2023-12-03 22:33:18 25 4
gpt4 key购买 nike

我正在使用 to_json我通过执行以下操作创建的模型对象上的方法:
user = User.find(1)
当我这样做时 user.to_json ,缺少很多属性,包括user.id来自编码的 JSON 字符串。似乎我从 User 模型中添加为 attr_accessible 的所有属性都在那里,但没有其他属性。也许这就是 to_json 正在做的事情,但我认为添加 id到 attr_accessible 是不行的。

解决这个问题的正确方法是什么?

更新

这看起来是 Devise 的一个特定问题。如果我从 user.rb 中注释掉以下内容,一切都会按预期进行:
devise :rememberable, :trackable, :token_authenticatable, :omniauthable

最佳答案

我没有检查过,但我相信 Devise 会为您做到这一点;它仅通过 attr_accessible 包含某些属性。

在任何情况下,解决此问题的正确方法是覆盖 as_json像这样的方法:

def as_json(options = nil)
{
my_attr: my_attr,
etc: etc
}
end

这是一个简单的散列,它是在 AR 中生成 JSON 的一种非常强大的方法,而不会弄乱 to_json方法。

关于ruby-on-rails - Ruby on Rails 3 - to_json 不包括所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6866480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com