Pregunta

Imagina que tengo un modelo, Publicar que tiene muchos: comentarios. ¿Cómo puedo mostrar solo publicaciones que tienen comentarios?

Estoy un poco cómodo con named_scope pero no sé cómo puedo poner Post.comments (o self.comments) en: hash de condiciones que espera símbolos.

class Post < ActiveRecord::Base
     has_many :comments
     named_scope :with_comments, :conditions => [#self.comments.length > 0]
end

¿Qué escribo en el área comentada?

¡Gracias!

¿Fue útil?

Solución

Mejor podría ser poner un counter_cache en Post.

class Comment < AR:Base
  belongs_to :post, :counter_cache => true
end

Entonces solo necesitas hacer 1 consulta en lugar de dos.

Post.find (: all,: condition = > [" counter_cache > 0 "])

Otros consejos

Debería poder unirse a su tabla de comentarios, asegurándose de seleccionar las distintas filas

named_scope :with_comments, :joins => :comments, :select => 'DISTINCT posts.*'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top