También puede usar directamente IN junto con json_array_elements:
Recipe.where("'405' IN (SELECT json_array_elements(data->'category_ids')::text)")
Y si su columna es una columna jsonb, puede hacer lo mismo:
Recipe.where("'405' IN (SELECT jsonb_array_elements(data->'category_ids')::text)")