gpt4 book ai didi

ruby-on-rails - 在 as_json 中订购嵌套关联

转载 作者:行者123 更新时间:2023-12-04 06:30:17 24 4
gpt4 key购买 nike

class User
has_many :posts
end

我想用 as_json 渲染一个 json 哈希值方法。

我将如何通过他们的 updated_at 对下面代码中的帖子进行排序属性而不在关联上设置默认顺序?
user.as_json(include: {posts: {include: :comments})

这不会用作请求响应,我想避免在关联上设置默认排序。

最佳答案

您可以使用自定义方法代替范围:

class User < ApplicationRecord
has_many :posts

def updated_posts
posts.order("posts.updated_at").as_json(include: :comments)
end
end

user.as_json(methods: :updated_posts)

这将产生如下内容:
{
# user attributes
"updated_posts => [
# posts with comments
]
}

如果您希望帖子严格遵守 posts关键,您可以执行以下操作:
json = user.as_json(methods: :updated_posts)
json[:posts] = json.delete(:updated_posts)

关于ruby-on-rails - 在 as_json 中订购嵌套关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42486615/

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