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-ish, но я считаю, что сложные запросы, такие как этот, имеют тенденцию быть МЕНЬШЕ понятными / эффективными при использовании макросов AR. Если у вас уже создан SQL, вы можете использовать его.
Некоторые предложения: инкапсулировать этот вызов find в методе INSIDE класса Question, чтобы скрыть детали из контроллера / представления, и рассмотреть другие конструкции SQL, которые могут быть более эффективными (например, OUTER JOIN, где levels_questions.question_id равен нулю)