我试图将一个对象渲染为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}