У меня реальная проблема с извлечением набора записей, которые имеют относительную привязку к пользователю, чтобы отобразить их на странице показа.
Вот идея:
Пользователи (current_user
) оценивают совместимость между двумя другими пользователями (user_a
и user_b
).Они могут оценивать совместимость как положительно, так и отрицательно: оценка «совместимых» двух пользователей создает positive_connection
между user_a и user_b, а оценка «несовместимых» - negative_connection
.Таким образом, есть модели для Positive_connection, негативных_коннекций и пользователей.
Теперь мне нужно отображать только пользователей, которые overall_positively_connected_to(@user)
(то есть, где positive_connections_to(@user).count > negative_connections_to(@user).count)
.
Это то, где я должен, но я не могу получить больше:
Модель пользователя:
def overall_positive_connected_to(user)
positive_connections_to(user).count > negative_connections_to(user).count
end
def positive_connections_to(user)
positive_connections.where("user_b_id = ?", user)
end
def negative_connections_to(user)
negative_connections.where("user_b_id = ?", user)
end
Контроллер
@user.user_bs.each do |user_b|
if user_b.overall_pos_connected_to(@user)
@compatibles = user_b
end
end
Код в контроллере явно неправильный, но как следуетЯ собираюсь сделать это? Я совершенно новичок в rails (и sql), поэтому, возможно, сделал что-то наивное.
Любая помощь будет отличной.