Я пытаюсь построить оператор ActiveRecord, который заставляет индекс, в то время как также включает в себя.Индекс силы действия Activerec включает в себя
заявление выглядит что-то вроде:
Job.from("jobs FORCE INDEX(index1,index2)").includes(:workflow)
однако, кажется, AR не нравится это и бросает:
NoMethodError (undefined method `map' for "jobs FORCE INDEX(index1,index2)":Arel::Nodes::SqlLiteral):
Кто-нибудь есть какие-либо идеи? Все работает нормально, если включает в себя утверждение снимается, так что я предполагаю, что пытается построить сглаживание запроса LEFT OUTER JOIN
и таблицы ...
Благодаря M
Кажется, что все в порядке в рельсах 4. Возможно стоит изучить различия между рейлами 3 и рельсами 4 (http://api.rubyonrails.org/v3.2.11/classes/ActiveRecord/QueryMethods.html#method- i-from и http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-from) – Shadwell
Привет, Shadwell. он отлично работает, за исключением случаев, когда activerecord должен выполнить запрос на основе одного из включений. Таким образом, более полным примером будет Job.from («jobs FORCE INDEX (index1, index2)»). Включает (: workflow) .where ("workflows.name = 'Bob'") ... – user3707
Вам нужно будет добавить вызов 'reference':' where ("workflows.name = 'Bob'"). reference ('workflows') ' – Shadwell