Genial. ¡Gracias!
Hubo una suscripción.
Una corrección en tu código:
subs = ::Stripe::Subscription.list(customer: customer.stripe_customer_id, status: 'all')[:data]
Hay 100 planes (así que probablemente más que eso), ¿quizás este sea el problema? (Intenté con limit: 1000 pero eso no cambió nada; supongo que es un límite de la API de Stripe)
Entonces, ¿quizás si hay >100 planes falla? Ah, y los usuarios para quienes no falla, están en planes que están entre los primeros 100.
discourse(prod)> plan = plans[:data].find { |p| p[:id] == price_id }
discourse(prod)>
=> nil
EDITAR:
Sí. Si hago esto:
# Obtener el ID del último elemento
last_price_id = plans.data.last.id
# Obtener los siguientes 100
next_plans = ::Stripe::Price.list(
expand: ['data.product'],
limit: 100,
starting_after: last_price_id
)
entonces
discourse(prod)> next_plans[:data].find { |p| p[:id] == price_id }
encuentra lo que busca.
EDITAR DE NUEVO: next_plans.count == 8. Sugerí que eliminaran 10 planes.