我有一个Rails 3.1控制器,用于呈现用户的联系人,包括关联的电子邮件对象和消息对象。如果我只渲染联系人,我可以执行以下操作:
@contacts = @current_user.contacts.order('last_name asc', :include => [:emails, :messages]) render json: @contacts, :include => [:emails, :messages]
如您所见,我想按姓氏而不是默认ID对联系人进行排序。我现在需要使用其他关联对象呈现用户对象。所以我尝试了以下内容,但当然联系人的顺序不合适:
render :status => 200, :json => { :user => @current_user.as_json( :include => { :foos => { :except => :user_id }, :contacts => { :except => :user_id, :include => [:emails,:messages] }, :bars => { :except => :user_id } } ) }
我在as_json documentation中没有看到任何帮助,我无法通过反复试验找到正确的语法。