Rieles named_scopes con uniones
Estoy intentando crear un named_scope que usa una unión, pero aunque el SQL generado se ve bien, el resultado es basura. Por ejemplo:
class Clip < ActiveRecord::Base
named_scope :visible, {
:joins => "INNER JOIN series ON series.id = clips.owner_id INNER JOIN shows on shows.id = series.show_id",
:conditions=>"shows.visible = 1 AND clips.owner_type = 'Series' "
}
(Un Clip es propiedad de una Serie, una Serie pertenece a un Show, un Show puede ser visible o invisible).
Clip.todo lo hace:
SELECT * FROM `clips`
Clip.visible.todo lo hace:
SELECT * FROM `clips` INNER JOIN series ON series.id = clips.owner_id INNER JOIN shows on shows.id = series.show_id WHERE (shows.visible = 1 AND clips.owner_type = 'Series' )
Esto se ve bien. Pero la matriz resultante de modelos de Clip incluye un Clip con una ID que no está en la base de datos; en su lugar, se tomó una ID de programa. ¿A dónde me voy mal?