订购Rails控制器呈现的JSON

时间:2011-12-18 06:02:06

标签: json ruby-on-rails-3.1 associations render nested-attributes

我有一个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中没有看到任何帮助,我无法通过反复试验找到正确的语法。

0 个答案:

没有答案