Rails 3: Заказать запрос, который использует ассоциации has_many и own_to в одном запросе - PullRequest
0 голосов
/ 01 марта 2011

В моей схеме Rails db есть следующая структура:

заданий имеет много заданий вакансии относятся к одной категории

Чего я хочу добиться, так это загружать все задачи со всеми связанными заданиями, упорядоченными по их категориям. Поэтому результат должен выглядеть примерно так:

task1 работа1 -> категория1 job3 -> категория2 job2 -> категория3

Task3 job5 -> категория1 job9 -> категория2 job4 -> категория3

Примечание. Порядок категорий - это не их идентификатор, а столбец.

На данный момент единственное работающее решение - это заказывать задания в Ruby, а не в SQL, что довольно плохо. Я только что наткнулся на опцию: finder_sql в ассоциации has_many, но я не уверен, что это путь.

1 Ответ

3 голосов
/ 01 марта 2011

Это создаст правильный sql, но я не уверен, что ActiveRecord сохранит порядок в ассоциации:

Task.find(:all, :include => {:job => :category }, :order =>'tasks.id, categories.column')

...