Traducir SQL a Active Record Query Interface en Ruby on Rails
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")
Deja una respuesta