2015-09-01 1 views
0

Я надеялся, что это будет просто, но, в сущности, я хотел бы, чтобы подсчитать количество пользователей, имеющие определенные атрибуты через таблицу объединения в Rails 4.Group через соединяемые таблицы Rails 4

У меня есть таблица с именем Views, который содержит три колонки:

t.references :viewer 
    t.references :viewed 
    t.boolean :sentmessage, default: false 

я тогда иметь поля ссылки как:

belongs_to :viewer, :class_name => "User" 
belongs_to :viewed, :class_name => "User" 

Каждая запись пользователя затем связана с целым рядом других записей как статистика, вопросы и ряд других. Я заинтересован в эффективном подсчете количества viewers из viewed записей: Male или Female (и другие поля поиска), которые являются данными, хранящимися в User.stat.gender.name и т. Д.

Я пытаюсь использовать group заявление, но не имеют ни малейшего представления о том, как развернуть и подсчитать количество мужчин и т.д. Я пробовал:

@results = View.where(viewed: 63).group("viewer.stat.gender") 

но это так неправильно, это пугает.

Любая помощь для этого будет оценена по достоинству.

ответ

0

Я наконец-то отработал. Для всех, кто интересуется:

View.where(viewed_id: 63).joins(viewer: {stat: :gender}).group("name").count 

не понимал, что внутреннее соединение было, но некоторые исследования и некоторые пробы и ошибки означают, что теперь я могу показать информацию о пользователях, которые посетили.

Смежные вопросы