2009-10-10 6 views
0

Par défaut, lorsque j'appelle ceci:Tri des objets du modèle dans la méthode View - call Model dans View ou implémentation du tri dans Controller?

<table> 
    <% @question.answers.each do |answer| %> 
    <tr> 

Les réponses à une question sont affichées dans l'ordre dans lequel ils ont été créés.

Quelle est la bonne façon de les trier en fonction de leurs votes? Je ne suis pas sûr si j'ai besoin d'appeler une méthode sur les réponses dans la vue ou mettre en œuvre une fonction de tri dans le contrôleur ou le modèle.

Répondre

1

Si je le fais une fois, je le ferai dans la vue quelque chose comme:

<% @questions.sort {|x,y| y.votes <=> x.votes }.each do |question| %> 
    <p><%= @question.title %></p>  
<% end %> 

Et comme cwninja, s'il y a quelque chose de plus intéressant que je vais faire la logique dans le contrôleur ou un assistant.

1

C'est surtout une question de style.

Personnellement:

  • Si c'est un ordre de tri codé en dur, il suffit de coller dans la vue.
  • Si elle a une certaine logique derrière elle (basée sur des paramètres de requête, a besoin de pagination ou de toute autre chose), puis coller la collection dans une variable @answers.
Questions connexes