J'essaie de trouver des commentaires créés après un datetime qui n'ont pas été créés par l'utilisateur actuel.Refactorisation d'une recherche pour les enfants de parents créés après un certain temps
Au début, je l'ai fait ..
current_user.comments.find(:all, :conditions=>["created_at > ? AND user_id != ?",
current_user.last_checked_mail, current_user])
mais le problème ici est que parce qu'il commence par le modèle utilisateur, ses commentaires ne trouvant exclusivement faites par cet utilisateur.
Ainsi, au lieu, j'ai commencé de chercher tous les commentaires associés à l'utilisateur, et les enfants des commentaires tant que leurs user_id ne current_user
Comment.find(:all, :conditions => ["user_id = ?", current_user]).select { |c|
c.comments.find(:all, :conditions => ["user_id != ?", current_user])
}
Mais il semble que dessine encore chaque commentaire lié à la current_user, et pas leurs enfants.
Mon modèle Commentaire:
belongs_to :commentable, :polymorphic => true
has_many :comments, :as => :commentable
Ceci est une réponse très excitante. J'apprends pas mal de nouvelles choses ici.Le seul hic est que cela n'exclut pas les commentaires faits par l'OP – Trip
J'ai essayé ceci .. mais il ne semble pas fonctionner 'where: commentable_id => commentaires.map (&: id),: user_id! = User .id' – Trip
Parce que ce n'est pas une syntaxe valide pour un hachage. J'ai mis à jour la réponse un peu. Je vois que vous utilisez le polymorphisme. Je laisse cela pour vous de comprendre;) – iain