I have a simple model
class User
has_many :logs
class Logs
related in the usual way through the foreign key logs.user_id. I'm trying to do the following using Arel and according to the Arel doc it should work.
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]))
When I do that I get the error
TypeError: Cannot visit Arel::SelectManager
However the author of Arel explicitly suggests that Arel can do this kind of thing.
Please do not write responses on how I can achieve the same query with raw sql, another type of Arel query etc. It is the pattern I am interested in not the specific results of this query.
l_t[:id].eq(counts[:user_id])
does this work? I mean, why should the id of a log be equal to the id of the user? – Autocracy