2011-01-06 6 views
0

Je veux lister les dernières mises à jour sur mon site. J'ai 2 tables Livres et cahiers.conseils sur la mise à jour des mises à jour du site dans les rails

@books = Book.find(:all, :order => 'created_at', :limit => 3) 
@notebooks = Notebook.find(:all, :order => 'created_at', :limit => 3) 
@updates = (@books + @notebooks).sort_by(&:created_at) 

vue

<% @updates.each do |update| %> 
<%=update.created_at %> #i want to print type of update in here 
<% end %> 

Comment imprimer type de mise à jour? puis-je ajouter une valeur de type à une variable d'instance comme ça?

@books.merge(:type => "book") #not working 

mon avis finale doivent être comme ça:

10/10/2010 book added. 
9/10/2010 notebook added. 
+0

Si vous avez besoin de faire beaucoup de choses comme ça, vous pouvez envisager STI si les modèles sont assez similaires. –

Répondre

1

Vérifiez le nom de classe

<%= update.class.name.downcase %> 

Peut-être mieux si vous l'envelopper dans une méthode d'assistance, de cette façon vous pouvez travailler avec une structure de cas et développez-le lorsque de nouvelles options sont ajoutées.

+0

merci. propre et simple. – Nanni

0
<% @updates.each do |update| %> 
    <%= update.created_at %> 
    <%= update.class.to_s.downcase %> added. 
<% end %> 
+0

Battez-vous par Adam Lassek. :) –

Questions connexes