gpt4 book ai didi

ruby-on-rails - Rails 呈现为 json,包括嵌套属性和排序

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

我正在尝试将对象呈现为 json,包括嵌套属性并按 created_at 属性对其进行排序。

我正在使用代码执行此操作:

format.json  { render :json => @customer, :include => :calls}

如何按 created_at 属性对调用进行排序?

最佳答案

如果您认为 Rails 是如何工作的,那么调用只是与调用模型相关的一种方法。有几种方法可以做到这一点。一种是在关联上设置 order 选项。一种是全局更改 Call 模型的默认范围,另一种是在 Customer 模型中创建一个返回调用的新方法(如果您希望在编码之前对调用做任何事情,这很有用。)

方法一:

class Customer < ActiveRecord::Base
has_many :calls, :order => "created_at DESC"
end

更新

对于 rails 4 及以上使用:
class Customer < ActiveRecord::Base
has_many :calls, -> { order('created_at DESC') }
end

方法二:
class Call < ActiveRecord::Base
default_scope order("created_at DESC")
end

方法三:
class Call < ActiveRecord::Base
scope :recent, order("created_at DESC")
end

class Customer < ActiveRecord::Base
def recent_calls
calls.recent
end
end

然后你可以使用:
format.json  { render :json => @customer, :methods => :recent_calls}

关于ruby-on-rails - Rails 呈现为 json,包括嵌套属性和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6972406/

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