gpt4 book ai didi

ruby-on-rails - 如何将值合并到 Rails 查询 as_json

转载 作者:太空宇宙 更新时间:2023-11-03 18:06:50 24 4
gpt4 key购买 nike

我有一个名为 User 的模型,我正在使用 User.all.as_json 获取所有用户。

User 模型也有 first_namelast_name 的值,所以我的结果看起来像这样:

  [
{
"username"=>"johndoe",
"first_name"=>"John",
"last_name"=>"Doe"
},
{
"username"=>"test",
"first_name"=>"Test",
"last_name"=>"Number 1"
}
]

我想为数组中的每个哈希添加一个自定义值,如下所示:

  [
{
"username"=>"johndoe",
"first_name"=>"John",
"last_name"=>"Doe",
"full_name"=>"John Doe"
},
{
"username"=>"test",
"first_name"=>"Test",
"last_name"=>"Number 1",
"full_name"=>"Test Number 1"
}
]

full_name 不是模型字段,而是 get_full_name 的方法。我不知道如何在每个哈希中合并该键值。这没有用:

posts = Post.all.as_json.each do |post|
post.merge({:full_name => post.get_full_name})
end

它返回没有 full_name 值的原始结果。

最佳答案

代码 Post.all.as_json 返回一个散列数组,带有字符串键。所以你不能在散列对象上使用方法 get_full_name。

您应该在循环内将数据转换为散列,并使用 map 而不是 each 来保留您的更改。

posts = Post.all.map do |post|
post.as_json.merge({:full_name => post.get_full_name})
end

要将您的 full_name 作为字符串键,您可以在哈希中使用字符串,而不是符号。

post.as_json.merge({"full_name" => post.get_full_name})

关于ruby-on-rails - 如何将值合并到 Rails 查询 as_json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43329504/

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