Je suppose que vous avez deux (ou plus) modèles séparés pour les objets enfants, de sorte que votre modèle Parent
ressemble à ceci:
class Parent < ActiveRecord::Base
has_many :dogs
has_many :cats
end
Pour les trier et de les obtenir généralement children
vous pouvez écrire la méthode (similaire à @gertas réponse):
def children
@children ||= (self.dogs.all + self.cats.all).sort(&:created_at)
end
et le mettre dans le modèle Parent
. Ensuite, vous pouvez l'utiliser dans le contrôleur:
@parent = Parent.find(params[:id])
@children = @parent.children
Maintenant, nous allons essayer de les afficher dans une vue. Je suppose que vous avez créé deux partiels pour chaque modèle _cat.html.erb
et _dog.html.erb
. En vue:
<h1>Children list:</h1>
<% @parent.children.each do |child| %>
<%= render child %>
<% end %>
Il faut trouver automaticaly qui devrait être utilisé partielle, mais il peut être utilisé que si vous suivez Rails façon. Si vous voulez nommer les partiels de manière différente, ou les stocker dans un répertoire différent, alors vous devrez écrire vos propres méthodes qui choisiront une partie correcte en fonction du type d'objet.
Merci! Cela semble me mettre sur la bonne voie. J'apprécie vraiment votre aide. – thedjpetersen
Merci cela semble avoir fait l'affaire – thedjpetersen