Estoy armando una pequeña aplicación que tiene un concepto de tabla de clasificación. Básicamente, el modelo es solo un player_name y un current_score.Rails 3 - Cómo obtener el número de fila de un modelo con un pedido por
lo que quiero hacer es obtener el ranking de un jugador específico, y dado que las nuevas puntuaciones están llegando todo el tiempo, tiene que ser dinámico. Obviamente, podría hacer un hallazgo normal con una cláusula order by y luego tendría que recorrer cada registro. No es muy eficiente cuando podría tener 100,000 de filas.
¿Alguna sugerencia sobre qué enfoque debería tomar?
Aquí es la migración de la tabla:
class CreateScores < ActiveRecord::Migration
def self.up
create_table :scores do |t|
t.string :player_name
t.integer :current_score
t.timestamps
end
end
def self.down
drop_table :scores
end
end
EDITAR A modo de ejemplo, por lo que tengo lo siguiente:
Score.select('player_name, current_score').limit(20)
=> [#<Score player_name: "Keith Hughes", current_score: 9>, #<Score player_name: "Diane Chapman", current_score: 8>, #<Score player_name: "Helen Dixon", current_score: 4>, #<Score player_name: "Donald Lynch", current_score: 9>, #<Score player_name: "Shawn Snyder", current_score: 2>, #<Score player_name: "Nancy Palmer", current_score: 9>, #<Score player_name: "Janet Arnold", current_score: 1>, #<Score player_name: "Sharon Torres", current_score: 9>, #<Score player_name: "Keith Ortiz", current_score: 5>, #<Score player_name: "Judith Day", current_score: 3>, #<Score player_name: "Gregory Watson", current_score: 7>, #<Score player_name: "Jeremy Welch", current_score: 3>, #<Score player_name: "Sharon Oliver", current_score: 7>, #<Score player_name: "Donald Lewis", current_score: 7>, #<Score player_name: "Timothy Frazier", current_score: 7>, #<Score player_name: "John Richards", current_score: 1>, #<Score player_name: "Carolyn White", current_score: 4>, #<Score player_name: "Ronald Smith", current_score: 2>, #<Score player_name: "Emily Freeman", current_score: 9>, #<Score player_name: "Gregory Wright", current_score: 2>]
¿Cómo puedo calcular el ranking de "Donald Lewis" ?
Buena pregunta, pero parece más una pregunta sobre estructuras de datos y algoritmos que una pregunta de ruby. –
Acabo de añadir algunas aclaraciones. Estoy tratando de encontrar la sintaxis de búsqueda correcta para usar. – Leddo