我试图将一个对象渲染为json,包括嵌套的属性,并通过created_at属性进行排序.
我正在使用代码:
format.json { render :json => @customer,:include => :calls}
解决方法
如果您认为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}