Named_scope e union

salve a tutt,

nell’applicazione che sto sviluppando c’è un sistema molto complesso
per stabilire se un certo utente può o non può vedere un documento.

dal momento che avrò bisogno di fare diverse query specializzate
(documenti visibili per una categoria, per un autore etc.), vorrei
utilizzare un named_scope o qualcosa del genere.

il problema è che la query è data da una serie di UNION e, per quanto
abbia cercato, non ho trovato niente che mi possa aiutare.

quello che vorrei è scrivere diverse named_scope, ognuna molto
semplice, e poi, in qualche modo, ottenere la union di alcune,
piuttosto che scrivere un’unica clausola conditions lunghissima, che
tra qualche settimana nessuno, me compreso, sarebbe in grado di
leggere e capire.

ho trovato un acts_as_union, ma fa le query separate e poi unisce i
risultati, invece di fare davvero la union, e comunque è molto
carente.

sto pensando di modificare o scrivere una sottoclasse di NamedScope,
ma prima chiedo consiglio: avete soluzioni migliori (già pronte) da
suggerirmi?

grazie