false t-6ren">
gpt4 book ai didi

ruby-on-rails - Rails - Model.all.to_json 没有放置所有 Devise 属性

转载 作者:数据小太阳 更新时间:2023-10-29 08:09:22 24 4
gpt4 key购买 nike

我正在尝试将所有信息从数据库表保存到 JSON,如下所示:

File.open("tmp/users.json", 'wb') {|file| file << User.all.to_json }

问题是,哈希中缺少这些列:

t.string   "encrypted_password",       :default => "",   :null => false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", :default => 0
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"

所有这些列都来自 Devise gem。如何将它们添加到最终的 JSON 文件中?

非常感谢。

最佳答案

attr_accessible 已从 Rails 4 中删除。

尽管如此,我建议您覆盖 as_json 方法以使其正常工作。

def as_json(options=nil)
attrs = {
only: [
:id,
:email,
:confirmed_at,
:locked_at
],
methods: [:roles_list]
}
super (attrs.merge(options || {}))
end

尽管如此,我认为最好的选择是使用 ActiveModel::Serializer ( https://github.com/rails-api/active_model_serializers )。

关于ruby-on-rails - Rails - Model.all.to_json 没有放置所有 Devise 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17822707/

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