ruby-on-rails – Rails渲染为json,包括嵌套属性和排序

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails渲染为json,包括嵌套属性和排序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图将一个对象渲染为json,包括嵌套的属性,并通过created_at属性进行排序.

我正在使用代码

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

如何通过created_at属性排序调用

解决方法

如果您认为rails的工作原理,调用只是一种与Call模型相关的方法.有几种方法可以做到这一点.一个是在订单上设置订单选项.一个是改变全局的默认范围,另一个是在客户模型中创建一个返回调用的新方法(如果您希望在编码之前对调用进行任何操作,则有用).

方法1:

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

方法2:

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

方法3:

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相关文章