Возможно, вам нужно что-то вроде этого:
@courses = Course.where("id NOT IN (?)", current_user.courses)
Причина, по которой вы не можете использовать чистый массив или условие хеширования, заключается в том, что вы отрицаете («НЕ В») запрос. Насколько я знаю, это невозможно сделать без использования строкового синтаксиса. Если вы просто хотите найти подходящие ("IN") элементы, вы можете использовать хеш-форму:
@courses = Course.where(:id => current_user.courses)
Это отрицательная ("НЕ В") часть, которая делает его хитрым.
Дополнительную информацию можно найти в Руководстве по интерфейсу запросов Active Record .