У меня есть какой-то SQL, который работает, когда я хочу найти определенные страницы, которым назначены определенные схемы (все через schema_assignment):
Page.find_by_sql("
SELECT pages.id
FROM pages
INNER JOIN scheme_assignments ON (scheme_assignments.schemable_type = 'Page' AND
scheme_assignments.schemable_id = pages.sid)
INNER JOIN schemes ON (schemes.sid = scheme_assignments.scheme_id AND
schemes.sid IN (4,6,7))
GROUP BY pages.id")
Когда я пытался преобразовать это вARel:
Page.select("pages.id")
.joins("scheme_assignments")
.on("scheme_assignments.schemable_type = 'Page' AND scheme_assignments.schemable_id = pages.sid")
.joins("schemes")
.on("schemes.sid = scheme_assignments.scheme_id AND schemes.sid IN (1)")
.group("pages.id")
Я бы получил эту ошибку: NoMethodError: undefined method
join_sql 'для "схем": String`
Почему?Это потому, что это не ассоциация в моей Page
модели?Можно ли преобразовать этот SQL в ARel без создания ассоциаций в модели?