📄 GUÍA TÉCNICA Y DE NEGOCIO

Cómo funciona Wyra Rails

Un solo documento para las dos personas que necesitan entender Wyra Rails: quien decide si conviene para su negocio, y quien lo va a integrar (un desarrollador, o un asistente de código leyendo esto). Sin letra chica — incluida la parte que todavía no está construida.

Última actualización: 2 de agosto de 2026 · v1
🚧 Dónde está parado Wyra Rails hoy: esto es un nivel de widget embebible + API, con el pago y los correos a nombre de Wyra. Es el primer paso hacia una API completamente white-label (checkout y correos con tu propia marca) — esa versión todavía no existe. La sección 10 explica exactamente qué falta y cómo se desbloquea.
ÍNDICE
01 QUÉ ES

Qué es Wyra Rails

Wyra Rails es la forma de mostrar el catálogo de Wyra — recargas prepagas, eSIM de viaje y gift cards digitales, ya con precios reales — directamente en tu propio sitio, app o herramienta, con pago incluido. Pegas un widget (o llamas nuestra API si tienes tu propio backend), tu cliente compra sin salir de tu página, y Wyra se encarga de todo lo demás: el pago (Wyra es el comerciante registrado de cada venta, siempre — nunca tú), el cumplimiento (incluidas las restricciones de países sancionados), la entrega del producto, y tu comisión.

Hoy Wyra Rails es un nivel de widget embebible + API: el checkout y los correos que recibe tu cliente llevan la marca de Wyra. Es, deliberadamente, el primer paso hacia una API completamente white-label — donde esos mismos correos, y potencialmente el checkout, lleven tu propia marca. Esa versión todavía no está construida. No es una promesa vacía: es una base real, en producción, sobre la que se construye la siguiente — y la sección 10 te cuenta exactamente qué falta y cómo se llega ahí.

En una frase: tú traes la audiencia y el sitio; Wyra trae el catálogo, el pago, el cumplimiento y la entrega. Tú defines cuánto agregar sobre nuestro precio, y ese margen adicional es tuyo.
02 CÓMO FUNCIONA

Cómo funciona, paso a paso

Desde tu primera visita hasta tu primer pago, así se ve el camino completo:

  1. Creas tu cuenta, gratis.
    En el portal de partners, con Google, Apple, o tu correo con un código — sin contraseña. Una cuenta de Wyra Rails es, por dentro, la misma identidad que un afiliado de Wyra: si ya tienes cuenta (de afiliado, de recargas, de eSIM), inicias sesión y activas Rails en un paso.
  2. Recibes tus claves al instante.
    Una clave pública (segura para pegar en el navegador) y una clave secreta (solo para tu propio backend, nunca en JavaScript). Puedes tener varias de cada tipo — en modo prueba o en vivo — y rotarlas cuando quieras desde tu panel.
  3. Wyra configura tu margen.
    Por defecto, 10% sobre nuestro precio normal — configurable por Wyra hasta un techo de 30%, para que el precio final siga siendo competitivo para tu cliente. Hoy el número lo fija Wyra sobre tu cuenta (no es un campo que edites tú mismo desde el panel); si quieres pedir un ajuste, escríbenos.
  4. Pegas el widget — o llamas la API.
    Para la mayoría de los sitios (WordPress, Wix, Squarespace, o código propio) un <div> más un <script> alcanza. Si tienes tu propio backend, puedes saltarte el widget y llamar los mismos endpoints REST directo con tu clave secreta — ver la especificación técnica.
  5. Wyra revisa tu cuenta antes de que se mueva plata real.
    Una clave nueva puede leer el catálogo (precios reales, en vivo) de inmediato — eso es solo lectura, sin riesgo. Pero crear una sesión de pago real requiere que Wyra active tu cuenta para modo en vivo, una revisión manual, normalmente 1-2 días hábiles.
  6. Tu cliente compra sin salir de tu sitio.
    Ve el precio final, sin sorpresas, completa sus datos, y es redirigido — dentro de la misma pestaña — a una página de pago segura operada por Stripe, a nombre de Wyra. Al terminar, vuelve automáticamente a tu sitio.
  7. Wyra entrega el producto.
    Usando exactamente el mismo sistema que ya entrega cada recarga, eSIM y gift card de Wyra hoy — nada nuevo, nada distinto, para una venta que llegó por tu widget.
  8. Tu comisión se acumula, visible en tiempo real.
    El 100% del margen que agregaste queda registrado a tu favor apenas se confirma el pago, con un período de espera (la ventana de reembolso) antes de estar disponible para retiro — ver la sección de ganancias.
  9. Cobras.
    Vía Stripe Connect — el mismo sistema de pagos que ya usan los afiliados de Wyra. Wyra nunca ve tu información bancaria.
03 LA EXPERIENCIA

Cómo se ve en tu negocio

El widget, embebido en tu sitio: una caja compacta que adopta el color de acento de tu marca (tú lo defines con un solo atributo). Muestra pestañas por producto (Recargas / eSIM / Gift cards, o solo el que habilites), un buscador de país, y una lista de precios donde el número grande — lo que tu cliente realmente paga, ya con tu margen incluido — es el titular. Al tocar un ítem se abre el formulario de compra, con ese mismo precio final. Abajo, un pequeño crédito "Impulsado por Wyra" — no removible en este nivel, el mismo patrón que usan Stripe Checkout u otras plataformas de pago en su plan gratuito/de bajo costo.

La compra, para tu cliente: completa su correo (y el dato del producto — el número a recargar, por ejemplo), toca "Comprar", y una verificación anti-bot invisible resuelve en segundo plano sin pedirle nada. Enseguida es redirigido — en la misma pestaña, sin abrir una ventana nueva — a una página de pago real, operada por Stripe, con el nombre de Wyra Technologies en el resumen de la tarjeta. Ahí completa su tarjeta (o Apple Pay / Google Pay, si el navegador lo ofrece) con la interfaz estándar de Stripe — esa pantalla nunca lleva tu marca, deliberadamente: es la prueba de que Wyra, no tú, es quien está cobrando. Al confirmar, Stripe lo redirige de vuelta a tu propio sitio, a la página de éxito que tú definas.

El widget adapta idioma, tema claro/oscuro y color de acento a tu marca. La página de pago en sí — y hoy, el correo con la confirmación o el código del producto — no: esa parte es 100% Wyra, por diseño, mientras estás en este nivel. Ver la sección 10.
04 AUDIENCIA

Para qué negocios está pensado

Wyra Rails no es "para todos" — está pensado para negocios que ya tienen una audiencia propia y quieren venderle algo más, sin construir infraestructura de pagos ni negociar con proveedores mayoristas:

💸 Negocios de envío de dineroUn negocio de remesas o de money transfer ya tiene clientes que envían dinero a su familia. Ofrecerles también una recarga o una eSIM de viaje es un producto adicional sobre la misma audiencia, sin sumar otro proveedor a su operación.
📰 Sitios y comunidades de la diásporaUn sitio de noticias, un blog o una comunidad online que ya le habla a la diáspora latina puede darle a esa misma audiencia un lugar para comprar — sin mandarla a otro sitio a mitad de la visita.
🚀 Emprendedores digitalesAlguien que quiere armar su propia tienda de recargas, eSIM o gift cards, sin negociar con proveedores mayoristas ni abrir una cuenta de pagos propia. El catálogo y el checkout ya existen — solo hace falta la audiencia.

Y, siendo igual de honestos sobre para quién no es la mejor opción hoy: si necesitas que el checkout y los correos de tu cliente lleven tu marca de punta a punta, esa versión (white-label completo) todavía no está construida — ver la sección 10. Y si tu negocio no tiene ninguna audiencia propia todavía, el programa de afiliados (compartir un link, sin sitio propio) suele ser un mejor punto de partida que Wyra Rails.

05 CUMPLIMIENTO

Especificaciones regulatorias

Ninguna. No necesitas licencia de transmisor de dinero, registro como MSB (Money Services Business), ni ningún tipo de cuenta de pagos o entidad regulada propia para vender a través de Wyra Rails.

Esto es posible porque Wyra — no tú — es siempre el comerciante registrado de cada venta. Wyra opera bajo la exención de la FinCEN para prepago de circuito cerrado (31 CFR 1010.100): el saldo que se entrega (minutos, datos, el código de una gift card) no es dinero transferible ni redimible en efectivo, así que la actividad no califica como transmisión de dinero bajo ese marco. Tu cliente paga directamente a Wyra a través de Stripe; tú nunca procesas el pago, nunca tienes acceso a los fondos, y nunca eres parte de la cadena de custodia del dinero.

Esto no es asesoría legal. Es una descripción real y verificada de cómo funciona la estructura de Wyra — no una opinión sobre tu situación particular. Tu jurisdicción puede exigirte una licencia comercial general para operar cualquier negocio (algo no relacionado con mover dinero, como un permiso municipal o un registro fiscal) — esa parte sigue siendo tu responsabilidad conocerla y cumplirla.
06 ECONOMÍA

Ganancias y pagos

La matemática, con un ejemplo real

Tu margen se agrega sobre el precio de Wyra — el mismo que ya cobra en su propio sitio. Es puramente adicional, y el 100% es tuyo.

PRECIO WYRA
$20.00
+
TU MARGEN (10%)
$2.00
=
TU CLIENTE PAGA
$22.00
TÚ TE QUEDAS CON EL 100% DE ESE MARGEN$2.00

Tu comisión no le resta nada a la economía propia de Wyra en esa venta: existe solo porque tu tráfico existe.

Lo que no cambia, pase lo que pase

Cuándo y cómo te pagan

Cada venta atribuida a tu cuenta queda registrada como comisión "pendiente" apenas se confirma el pago. Antes de estar disponible para retiro, pasa por dos filtros reales, no cosméticos:

  1. Ventana de reembolso (~30 días).
    Tu comisión pasa de "pendiente" a "disponible" recién cuando se cierra la ventana de reembolso de esa venta — el mismo período de espera que ya protege al programa de afiliados de Wyra. No es una demora arbitraria: es el tiempo estándar en el que un reembolso o un contracargo podría todavía llegar.
  2. Retiro mínimo: $25.
    Puedes retirar tu saldo disponible una vez que llega a $25 — el mismo umbral que ya usan los afiliados de Wyra hoy, vía Stripe Connect. Wyra nunca ve tu información bancaria; eso lo maneja Stripe directamente contigo.
  3. Aprobación manual antes de que se mueva dinero.
    Cada lote de pago pasa por una revisión humana en Wyra antes de que se ejecute la transferencia — hoy es igual para cualquier monto. La intención de Wyra es que los retiros notablemente grandes reciban una mirada más de cerca antes de liberarse (le da tiempo al propio período de liquidación de Stripe a terminar de asentarse, reduciendo el riesgo de pagarte una comisión justo antes de que llegue un reembolso tardío) — pero eso hoy es criterio manual dentro de esa misma revisión, no una fórmula automática de "monto más grande = espera más larga" todavía codificada en el sistema.
No hay cupones ni créditos de Wyra aplicables en una compra que viene de Rails, en esta primera versión — se mantuvo simple a propósito.
07 PARA DESARROLLADORES

Instalación y especificación técnica

Esta sección es la referencia completa — autenticación, endpoints, formas exactas de request/response, y códigos de error. Si estás integrando (o si eres un asistente de código leyendo esto por un humano), esto es todo lo que necesitas.

Lo mínimo para empezar

<!-- Todo lo que hace falta pegar en tu sitio -->
<div id="wyra-rails" data-wyra-pubkey="wr_pub_live_TU_CLAVE"></div>
<script src="https://wyraapp.com/rails/widget.js" async></script>

Atributos del widget (data-wyra-*)

AtributoObligatorioValoresPor defecto
data-wyra-pubkeywr_pub_live_… / wr_pub_test_…
data-wyra-productNoesim · recargas · giftcard · allall (con selector de pestañas)
data-wyra-countryNoISO-2, ej. MXninguno — tu cliente busca
data-wyra-langNoes · en · pt<html lang> de tu página, o es
data-wyra-themeNolight · dark · autolight
data-wyra-accentNocualquier color CSS (#hex, rgb(), nombre)cian de Wyra
data-wyra-success-urlNoURL absoluta en tu propio dominiola página actual
data-wyra-cancel-urlNoURL absoluta en tu propio dominiola página actual

Un success_url / cancel_url que no apunte a un dominio que registraste en tu cuenta se ignora silenciosamente y cae a una página genérica de Wyra — es una protección real: una clave pública filtrada no se puede usar para redirigir a un cliente recién pagado a un sitio arbitrario.

Autenticación

Dos tipos de clave, con reglas de exposición muy distintas:

Pública — wr_pub_…Segura para pegar en el navegador. Es lo que trae el widget. Solo puede leer el catálogo y crear una sesión de pago (nunca leer datos de otros clientes).
Secreta — wr_sec_…Solo para tu propio backend. Nunca la pongas en JavaScript del lado del navegador.

Envía tu clave como header x-rails-key (recomendado — funciona en cualquier entorno, incluidos builders de bajo código donde el header Authorization es incómodo de configurar), o como Authorization: Bearer <tu-clave>.

Si llamas desde tu propio backend (sin el widget), no necesitas nada más:

Authorization: Bearer wr_sec_live_TU_CLAVE_SECRETA

Si llamas desde el navegador con el widget, viajan dos capas de auth — el widget ya las maneja por ti, no tienes que armarlas a mano: el par público de Supabase (Wyra, no el tuyo) más tu propia clave:

apikey: <clave anónima pública de Wyra — la trae widget.js>
Authorization: Bearer <la misma clave anónima>
x-rails-key: wr_pub_live_TU_CLAVE_PUBLICA
Entornos: una clave test se autentica y puede leer el catálogo sin problema (útil para probar tu integración visual con precios reales). Pero crear una sesión de pago con una clave test se rechaza hoy con test_mode_not_supported — todavía no existe un entorno sandbox de Stripe separado para simular un cobro sin moverlo de verdad. Para probar el checkout de punta a punta necesitas una clave live ya aprobada por Wyra.

Catálogo — GET /rails?action=catalog

Base: https://owvktacuqmlymszkrwxv.supabase.co/functions/v1/rails. Lectura pura, sin efectos secundarios — cualquier clave activa (pública o secreta, live o test) puede llamarla. Los precios que devuelve ya incluyen tu margen (partner_price_usd); nunca expone el costo mayorista de Wyra.

Recargas
GET /rails?action=catalog&product=recargas&country=MX
{
  "product": "recargas", "country": "MX",
  "operators": [{
    "wyra_operator_id": 100234,
    "operator_name": "Telcel Mexico",
    "is_bundle": false,
    "logo_url": "https://.../telcel.png",
    "brackets": [{
      "bracket_id": 3,
      "wyra_retail_usd": 20.65,
      "partner_price_usd": 22.72,
      "markup_usd": 2.07,
      "local_amount": 350, "currency_delivered": "MXN",
      "denomination_type": "fixed",
      "product_label": "Recarga de $350 MXN",
      "validity": null, "benefits": null
    }]
  }]
}

Ejemplo ilustrativo con la forma real de campos — un país trae varios operadores, cada uno con varias denominaciones (brackets).

eSIM
GET /rails?action=catalog&product=esim&country_code=ES
{
  "product": "esim", "country_code": "ES",
  "packages": [{
    "package_id": "6b6f6e5b-…", "name": "España 20GB 30 días",
    "country_code": "ES", "data_quantity": 20, "data_unit": "GB",
    "validity": 30, "validity_unit": "days", "unlimited": false,
    "wyra_retail_usd": 23.99, "partner_price_usd": 26.39, "markup_usd": 2.40
  }],
  "truncated": false
}
Alcance v1: solo eSIM de un país, y solo el tipo "solo datos" (sin línea con número). Bundles regionales/globales y las líneas de voz (como Wyra Mobile) todavía no están en el catálogo de Rails — vender el tipo de paquete equivocado es un riesgo de entrega, no solo de precio, así que se mantuvo el alcance angosto a propósito.
Gift cards
GET /rails?action=catalog&product=giftcard&country_iso=US&brand=amazon
{
  "product": "giftcard", "country_iso": "US",
  "cards": [{
    "catalog_id": "b21e4b0e-…", "brand": "Amazon", "category": "retail",
    "country_iso": "US", "face_value": 25, "face_currency": "USD",
    "logo_url": "https://.../amazon.png",
    "wyra_retail_usd": 25.00, "partner_price_usd": 27.50, "markup_usd": 2.50
  }],
  "truncated": false
}

El catálogo de gift cards solo incluye marcas cuyo canal de origen ya está validado del lado de Wyra — el mismo filtro de seguridad que usa la tienda de Wyra directamente, no uno distinto para Rails.

Checkout — POST /rails?action=checkout-session

Crea la sesión de pago real (Stripe Checkout Session, en la cuenta de Wyra) y la orden pendiente asociada. Requiere una clave live y una cuenta ya aprobada para modo en vivo.

POST /rails?action=checkout-session
{
  "product": "recargas",
  "customer_email": "cliente@correo.com",
  "wyra_operator_id": 100234, "bracket_id": 3, "country_iso": "MX",
  "recipient_phone": "5215512345678", "operator_name": "Telcel Mexico",
  "turnstile_token": "…",          // solo con clave pública (navegador)
  "success_url": "https://tunegocio.com/gracias",
  "cancel_url": "https://tunegocio.com/recargas"
}
ProductoCampos propios del body
recargaswyra_operator_id, bracket_id, country_iso, recipient_phone, operator_name (opcional)
esimpackage_id
giftcardcatalog_id

Comunes a los tres: product, customer_email, y opcionalmente turnstile_token (obligatorio solo si llamas con una clave pública desde el navegador — el widget ya lo resuelve solo), success_url, cancel_url.

Respuesta — 200
{
  "checkout_url": "https://checkout.stripe.com/c/pay/cs_live_…",
  "transaction_id": "b0e21c4a-…",   // esim devuelve "order_id" en su lugar
  "wyra_retail_usd": 20.65, "markup_usd": 2.07, "partner_price_usd": 22.72
}

Un 200 es la señal de éxito — redirige a checkout_url (misma pestaña). Solo las respuestas de error llevan success:false.

Respuesta — error
{
  "ok": false, "success": false,
  "error_code": "destination_not_supported",
  "error": "Destination country not supported",
  "message": "Destination country not supported"
}

Códigos de error más comunes

error_codeEstadoQué significa
invalid_api_key401Clave ausente, mal escrita o revocada.
rate_limited429Superaste el límite de solicitudes — ver más abajo.
product_not_enabled403Tu cuenta no tiene ese producto habilitado.
rails_not_live403Tu cuenta (o el sistema en general) todavía no está aprobada para checkout real.
test_mode_not_supported403Intentaste crear un checkout con una clave test — hoy no es posible, ver arriba.
captcha_failed403La verificación anti-bot (Turnstile) no se resolvió — solo aplica a claves públicas.
destination_not_supported403País de destino sancionado / no vendible — el mismo bloqueo que aplica en wyraapp.com.
missing_fields400Faltan campos requeridos — vienen listados en error_params.fields.
invalid_phone400El número de destino no tiene el largo esperado para ese país.
bracket_unavailable404Esa denominación específica ya no está disponible — vuelve a pedir el catálogo.
esim_package_wrong_type409Ese paquete de eSIM está fuera del alcance v1 (no es "solo datos, un país").
limit_exceeded_…403El monto supera los límites de cumplimiento de la cuenta del cliente final.
disposable_email_not_allowed400El correo del cliente es de un dominio desechable bloqueado.
upstream_error502Stripe no pudo crear la sesión — reintenta.
service_temporarily_unavailable503Hipo de infraestructura de Wyra — reintenta, nunca es definitivo.

Límites de uso

AlcancePor minutoPor día
Catálogo, por clave12020,000
Checkout, por clave302,000
Checkout, por IP (capa extra, cualquier clave)415 por hora

La capa por IP usa el mismo mecanismo que protege recargas, eSIM y gift cards en wyraapp.com, pero con un cupo propio de Rails — un checkout hecho en tu sitio no consume el cupo de otro producto Wyra desde esa misma IP, ni al revés.

Un hipo de infraestructura del lado de Wyra nunca bloquea tu integración por error: estos límites fallan "abiertos" — si algo interno no responde, tu solicitud sigue adelante en vez de rechazarse.

¿Prefieres tu propio código en vez del widget? Todo lo de arriba es una API REST normal — llama catalog para mostrar precios y checkout-session cuando tu cliente confirme, con tu clave secreta desde tu propio servidor. No necesitas usar widget.js en absoluto.
08 CONFIANZA

Quién es Wyra

Wyra Technologies LLC ya opera tres líneas de producto reales, en vivo, vendidas directamente a la diáspora latina en Estados Unidos en wyraapp.com: recargas prepagas a más de 140 países, eSIM de viaje, y gift cards digitales. Wyra Rails no es un experimento aparte — es la misma infraestructura que ya cobra, ya entrega, y ya cumple, extendida para que también la puedas usar tú. Cuando tu widget muestra un precio, es el mismo motor de precios que corre en la propia tienda de Wyra; cuando tu cliente compra, es el mismo webhook de Stripe y los mismos sistemas de entrega que ya procesan cada venta de Wyra hoy.

Esa misma estructura legal — la exención de la FinCEN para prepago de circuito cerrado — es la que hace posible que Wyra Rails no te exija ninguna licencia (ver la sección 5).

09 RENDIMIENTO

Velocidad

No hay una ruta separada, más lenta, para una venta que llega por Rails. El catálogo se lee de las mismas tablas de precios curados que consulta la propia wyraapp.com — no existe un "feed de precios para partners" aparte y potencialmente desactualizado. El checkout es una sesión de Stripe Checkout real, el mismo flujo de un solo redirect que Wyra ya usa hoy para cada recarga, eSIM y gift card que vende directamente. Y la entrega — el SMS de confirmación, el QR de la eSIM, el código de la gift card — corre por los mismos webhooks que ya sirven a los clientes de Wyra en vivo, sin modificar, sin poner una venta de Rails en una cola aparte ni tratarla como de segunda clase.

No publicamos un número de milisegundos aquí a propósito: preferimos describir la arquitectura real (la misma que ya está en producción, sirviendo tráfico real) antes que inventar una cifra que no podamos sostener en cada condición de red.

10 QUÉ SIGUE

El camino al white-label completo

Siendo honestos sobre dónde está parado esto: hoy, los correos que recibe el cliente de un partner (el recibo de compra, el QR de la eSIM, el código de la gift card) salen con la marca de Wyra — no la tuya. Es la fase actual, no la versión final. La versión completamente white-label (correos con tu propia marca, y potencialmente un checkout con tu propia identidad visual) está en el roadmap, pero todavía no está construida.

Hay dos caminos reales para desbloquearla — y ambos son política actual de Wyra, no una garantía fija para siempre:

🌱 Camino orgánico
~$1,000/mes

Sostener un volumen real de ventas — hoy la referencia de Wyra es alrededor de $1,000/mes en precio Wyra, durante dos meses consecutivos — demuestra que vale la pena construir el trabajo de marca por-partner, y Wyra lo prioriza para tu cuenta.

💳 Camino adelantado
$250 – $1,000

Si quieres desbloquearlo antes de demostrar ese volumen por tu cuenta, puedes financiar la construcción con una cuota de configuración por adelantado — hoy la referencia de Wyra está entre $250 y $1,000, según el alcance de lo que necesites.

Ninguno de los dos es una promesa contractual escrita en piedra — son la intención actual de Wyra, y los montos exactos pueden ajustarse. Si te interesa cualquiera de los dos caminos, escríbenos a support@wyraapp.com y lo conversamos sobre tu caso concreto.

11 CASO ESPECIAL

Página alojada, para un local físico sin sitio propio

Esto es distinto del widget embebible descrito en las secciones anteriores, y distinto también del roadmap white-label de la sección 10 — es una tercera opción, más chica, pensada para un caso puntual: un negocio que no tiene ningún sitio web propio donde pegar un widget — un kiosco, un mostrador de remesas, una tablet parada sobre el mostrador esperando que un cliente toque la pantalla.

Para ese caso, en vez de pedirte que primero construyas un sitio, Wyra puede alojarte una página propia — mismo catálogo, mismo checkout, sin escribir una sola línea de código — y apuntas el navegador de tu tablet o mostrador a esa URL. La pides desde tu panel una vez que tu cuenta de Rails está activa, y hoy no tiene costo.

No es automática, y no es para cualquiera. Cada solicitud se revisa a mano, y se otorga específicamente para el caso de un local físico sin sitio propio — no es un atajo para un negocio online que "todavía no tiene sitio" (para ese caso, el widget embebible sigue siendo el camino, apenas tengas dónde pegarlo). Tampoco es un paso hacia el white-label de la sección 10: son dos caminos independientes, y uno no lleva al otro.

¿Listo para integrar Wyra Rails?

Crea tu cuenta gratis, recibe tus claves al instante, y prueba el widget hoy mismo.

Crear mi cuenta de Wyra Rails →