Usando la consola de Ruby on Rails Ruby
Publicado: 25 de Ene del 2011Prohibida la reproducción total o parcial de este artículo sin el previo consentimiento de Webtutoriales.com
Consejos y funcionalidades más útiles en la consola de Ruby on Rails
A continuación mostraré algunos trucos y consejos varios de más utilidad cuando se trabaja desde la consola en el desarrollo de aplicaciones web con Ruby on Rails.
Para abrir la consola a partir de Rails 3 podemos ejecutar el comando:
rails console
o script/console en versiones anteriores.
Método map/collect
Una de las mejores características de Ruby es cómo trata a las colecciones de objetos y lo fácil que es manipularlas.
La instrucción map y collect tienen la misma funcionalidad: A partir de una colección de datos devuelven un nuevo array con los datos manipulados.
Además, gracias a la navegabilidad que nos ofrece ActiveRecords para obtener información relacionada de distintos modelos, podemos obtener resultados asombrosos rápidamente. Véamos un ejemplo.
Si tenemos una colección de Posts:
Post.all => [#Post id: 125, title: "Título de este post"..., #Post id: 4501, title: "Otro título"..., #Post id: 5410, title: "Ruby on rails"..., #Post id: 10105, title: "Ejemplo de título"...]
Para obtener sólo los ids, podemos ejecutar:
Post.all.map(&:id) => [125, 4501, 5410, 10105]
Si queremos ver los títulos:
Post.all.map(&:title) => ["Título de este post", "Otro título", "Ruby on rails", "Ejemplo de titulo"]
Si deseamos obtener más información de un objeto en concreto podemos hacerlo del siguiente modo:
Post.all.map{|i| puts i.user.name}Mostrará el nombre de cada usuario que ha escrito un mensaje.
Select
El método select es también muy importante. Podemos seleccionar sólo los elementos de una colección que cumplan cierta condición:
Post.all.map{|i| i.user.name}.select{|i| i.eql?("Lorena")}
De la colección de nombres de usuarios devolverá la que tenga de nombre "Lorena"
Benchmark en tiempo real
Rails trae un conjunto de herramientas para hacer pruebas de benchmarking de la aplicación, pero si desde la consola queremos realizar una prueba rápida podemos utilizar el método realtime de la clase Benchmark, por ejemplo:
foo =""; puts Benchmark.realtime {1000.times{
foo += "eeeeeeee"}
}
=> 0.00336003303527832
>>foo =""; puts Benchmark.realtime {1000.times{
foo << "eeeeeeee"}
}
=> 0.000760078430175781
En este caso vemos que utilizar la instrucción << es mucho más rápido que +=.
Acceder al último valor ejecutado
Una forma rápida de guardar el contenido ejecutado en la instrucción anterior desde la consola es utilizar el símbolo '_'.
"cadena de texto" => "cadena de texto" var = _ puts var cadena de texto
Mostrar las consultas SQL en la consola
Para ver las consultas SQL que se ejecutan al utilizar los modelos ActiveRecord, podemos ejecutar esta instrucción en la misma consola en "Rails 3":
ActiveRecord::Base.logger = Logger.new(STDOUT)
Comentarios
Artículos relacionadosVer más
- Cómo instalar Ruby on Rails en Windows
- Modelo Vista Controlador
- ¿Qué es Ruby on Rails?
- Introducción a Ruby
- Ruby: Programación orientada a objetos
- Tratamiento de excepciones en Ruby
- Paginación en Ruby on Rails
- Urls amigables en Ruby on Rails
- Usando la consola de Ruby on Rails
- Instalar GIT, RVM, Ruby, Ruby on Rails y Passenger