Rails 3 equivalent of complex SQL query
        Posted  
        
            by Bryan
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Bryan
        
        
        
        Published on 2010-06-15T03:16:30Z
        Indexed on 
            2010/06/15
            3:22 UTC
        
        
        Read the original article
        Hit count: 417
        
Given the following models:
class Recipe < ActiveRecord::Base
  has_many :recipe_ingredients
  has_many :ingredients, :through => :recipe_ingredients
end
class RecipeIngredient < ActiveRecord::Base
  belongs_to :recipe
  belongs_to :ingredient
end
class Ingredient < ActiveRecord::Base
end
How can I perform the following SQL query using Arel in Rails 3?
SELECT * FROM recipes WHERE NOT EXISTS (
  SELECT * FROM ingredients WHERE 
    name IN ('chocolate', 'cream') AND 
    NOT EXISTS (
      SELECT * FROM recipe_ingredients WHERE 
        recipe_ingredients.recipe_id = recipes.id AND 
        recipe_ingredients.ingredient_id = ingredients.id))
© Stack Overflow or respective owner