Question.find_all_by_sql('select id,name from questions where id not in (select question_id from levels_questions where level_id=15)')
Это, по общему признанию, не ActiveRecord-иш, но я считаю, что сложные запросы, такие как это, как правило, менее ясно/эффективен при использовании AR макросов. Если вы уже создали SQL, вы можете его использовать.
Некоторые предложения: инкапсулировать этот вызов на поиск методом INSIDE в классе Question, чтобы скрыть данные от контроллера/представления и рассмотреть другие конструкции SQL, которые могут быть более эффективными (например, OUTER JOIN, где levels_questions.question_id имеет значение null)
можно ли это указать в параметрах_from_collection_for_select в select_tag? – Nave
Я только что отредактировал его, чтобы изменить его от поиска ко всем. Выберите нужную версию. Думаю, что-то заставило тебя передумать. Мне нравится другое решение. Дайте нам знать, почему вы выбрали мой ответ по другому. –