Traducir SQL a Active Record Query Interface en Ruby on Rails

03 julio 2019

Vincent, un buen amigo que tiene una startup tecnológica, tiene un proyecto web de correduría de seguros médicos. Esta aplicación web está escrita en Ruby usando el framework Ruby on Rails. El otro día me escribió para pedirme ayuda sobre cómo «traducir» una query de MySQL a ActiveRecord.

Mi amigo viene del mundo PHP y está empezando en esto de la programación en Ruby, y todavía no ha alcanzado un buen nivel, pero se defiende, y eso no le impide que su aplicación web funcione correctamente.

Os pongo el ejemplo aquí por si a alguien le sirve.


select
    clients.id,
    clients.name,
    clients.zipcode,
    clients.state,
    clients.city,
    count(sales.id) AS "Number of sales",
from clients
join sales
    where clients.id = sales.client_id
    and sales.sku != ""
GROUP by sales.client_id
ORDER BY sales.created_at asc;


Client.joins(:sales)
  .where("clients.id == sales.client_id AND sales.sku IS NOT IN (?)", ["", nil])
  .select("id, name, zipcode, state, city, count(sales.id) as number_of_sales")
  .order("sales.created_at")

Sugerencia: vuelve al índice o pulsa Ctrl + K.

0 comentarios

TIP RÁPIDO

Sé concreto, añade contexto (versión, distro, stack) y si puedes pega logs en bloque de código. Menos drama, más señales.

nginx plesk mariadb logs

Deja una respuesta

NormaRespeto, claridad, y cero spam. El email no se publica.

Consejo: usa bloques de código para logs. Ej: ```log ... ```

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.