Comment commander les éléments inclus dans Rails 3

J'ai un modèle de relation où today a beaucoup de tasks

Je suis en train de récupérer d'un utilisateur today objet, comprennent la tasks et de les rendre tous Json. Tout cela allait très bien jusqu'à ce que j'ai décidé que je voulais commander le tasks dans le today objet, car respond_with block est également utilisé pour le rendu de la page html. Est-il possible d'inclure le tasks et les commander?

Je suis en train d'essayer quelque chose comme ceci:

class TodaysController < ApplicationController
  respond_to :html, :json
  def show
    @today = Today.where(:user_id => current_user.id).joins(:tasks).includes(:tasks).order(:priority).first
    respond_with @today, :include => :tasks
  end
end

Cette récupère tout correctement, mais ne semble pas à l'ordre les tâches à tous.

C'est ce que j'ai utilisé (qui fonctionnait très bien, mais je n'avais pas la commande):

class TodaysController < ApplicationController
  respond_to :html, :json
  def show
    @today = current_user.today
    respond_with @today, :include => :tasks
  end
end

Je sais que je peux récupérer les données et de les trier par la suite comme ceci:

@today = current_user.today
@today.tasks.sort!{|a,b| a.priority <=> b.priority }

Ce qui fonctionne et vais passer mes tests, mais je m'attendais à un ActiveRecord façon de résoudre ce problème.

  • Concernant votre dernière ligne de code. La suite est un peu plus clair: @today.tasks.sort_by(&:priority).