Vous pouvez également utiliser directement IN avec json_array_elements :
Recipe.where("'405' IN (SELECT json_array_elements(data->'category_ids')::text)")
Et si votre colonne est une colonne jsonb, vous pouvez faire de la même manière :
Recipe.where("'405' IN (SELECT jsonb_array_elements(data->'category_ids')::text)")