Ho un semplice modelloCome fare unisce il subquery in AREL all'interno Rails
class User
has_many :logs
class Logs
correlate nel solito modo attraverso il logs.user_id chiave esterna. Sto cercando di fare quanto segue usando Arel e secondo il documento Arel dovrebbe funzionare.
u_t = Arel::Table::new :users
l_t = Arel::Table::new :logs
counts = l_t.
group(l_t[:user_id]).
project(
l_t[:user_id].as("user_id"),
l_t[:user_id].count.as("count_all")
)
l_t.joins(counts).on(l_t[:id].eq(counts[:user_id]))
Quando faccio che ottengo l'errore
TypeError: Cannot visit Arel::SelectManager
Tuttavia l'autore di Arel explicitly suggests che Arel può fare questo genere di cose.
Si prega di non scrivere risposte su come posso ottenere la stessa query con sql raw, un altro tipo di query Arel ecc. È il modello a cui sono interessato non i risultati specifici di questa query.
'l_t [: id] .eq (counts [: user_id]) 'funziona? Voglio dire, perché l'ID di un log dovrebbe essere uguale all'ID dell'utente? –