En primer lugar, esto realmente depende de si desea utilizar un enfoque Arel puro o si está bien usar SQL. El primero es IMO solo aconsejable si tiene la intención de construir una biblioteca, pero innecesario si está creando una aplicación donde, en realidad, es muy poco probable que cambie su DBMS en el camino (y si lo hace, cambie un puñado de las consultas manuales probablemente serán el menor de sus problemas).
Suponiendo que usar SQL está bien, la solución más simple que debería funcionar en casi todas las bases de datos es esta:
Order.where("(SELECT COUNT(*) FROM line_items WHERE line_items.order_id = orders.id AND line_items.discount_applied IS NULL) = 0")
Esto también debería funcionar prácticamente en todas partes (y tiene un poco más de Arel y menos SQL manual):
Order.left_joins(:line_items).where(line_items: { discount_applied: nil }).group("orders.id").having("COUNT(line_items.id) = 0")
Dependiendo de su DBMS específico (más específicamente: su respectivo optimizador de consultas), uno u otro podría ser más eficiente.
Espero que ayude.