Tôi có một mô hình đơn giảnLàm thế nào để làm tham gia vào truy vấn phụ trong AREL trong Rails
class User
has_many :logs
class Logs
liên quan theo cách thông thường thông qua các logs.user_id chính nước ngoài. Tôi đang cố gắng làm những điều sau đây bằng cách sử dụng Arel và theo Arel doc nó sẽ hoạt động.
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]))
Khi tôi làm điều đó tôi nhận được lỗi
TypeError: Cannot visit Arel::SelectManager
Tuy nhiên tác giả của Arel explicitly suggests rằng Arel có thể làm điều này loại điều.
Vui lòng không viết câu trả lời về cách tôi có thể đạt được cùng một truy vấn với sql thô, một loại truy vấn Arel khác ... Đó là mẫu mà tôi quan tâm không phải là kết quả cụ thể của truy vấn này.
'l_t [: id] .eq (đếm [: user_id]) 'hiện công việc này? Ý tôi là, tại sao id của nhật ký phải bằng id của người dùng? –