A lo largo de todo este tiempo que llevo como desarrollador de Rails he cogido una serie de manías y hábitos, a la vez que he descubierto una serie de herramientas y plugins que me han parecido imprescindibles, y que incluso podrían venir incorporadas de serie en Rails.
Así que tras el clásico rails vaporware_project hago lo siguiente:
Instalar el plugin annotate_models
Se trata de un plugin que te copia un listado de atributos de la clase como comentarios en los ficheros del modelo y de las fixturas mediante un simple rake annotate_models.
El resultado es algo como esto:
# == Schema Information
# Schema version: 4
#
# Table name: sources
#
# id :integer(11) not null, primary key
# url :string(255) default(), not null
# feed_type :string(255) default(), not null
# title :string(255) default(), not null
# description :text
# created_at :datetime not null
# updated_at :datetime not null
#
class Source < ActiveRecord::Base
Más información: http://agilewebdevelopment.com/plugins/annotate_models
Instalar el plugin test_fixtures
Este plugin, desarrollado por Ernesto Jiménez, añade dinámicamente un test de las fixturas de cada uno de los modelos.
Más información: http://www.lacoctelera.com/ernesto-jimenez/post/2007/04/19/plugins-mi-propia-cosecha
Instalar el plugin memory_test_fix
Se trata de un plugin que permite que los tests se ejecuten contra una base de datos cargada en memoria, lo cuál hace que vayan infinitamente más rápidos, algo muy recomendable si su número crece y crece.
Más información: http://agilewebdevelopment.com/plugins/memory_test_fix
Tanto este plugin como el anterior son ideales si vas a empezar un proyecto siguiendo la metodología TDD
Limpiar los ficheros database.yml y environment.rb
Esto es más una manía que otra cosa, pero ambos ficheros vienen llenos de comentarios (muy instructivos y útiles, la verdad), pero que hace que ocupen infinitamente más de lo que deberían de ocupar.
Por ejemplo, mi database.yml es así:
development:
adapter: mysql
database: vapor_development
username: user
password: pass
host: localhost
test:
adapter: sqlite3
database: ":memory:"
Y mi environment.rb es así:
RAILS_GEM_VERSION = '1.2.3' unless defined? RAILS_GEM_VERSION
require File.join(File.dirname(__FILE__), 'boot')
Rails::Initializer.run do |config|
end
Utilizar los generadores de Rails
Los generadores de Rails son realmente útiles para crear las plantillas de los ficheros que vamos a utilizar: son mucho más limpios que el scaffold porque crean los ficheros vacíos, pero ya crean fixturas, controladores, tests, etcétera.
Especialmente recomendable el nuevo script/generate resource item, que nos creará nuestro modelo y nuestro controlador como un recursos, creando también las rutas asociadas.
Copio el script rsql en mi carpeta de scripts
El script rsql nos lo enseñó Juan Lupión, y si le dieran un céntimo por cada vez que lo utilizamos ya sería rico.
Se trata de un script de consola que toma como argumento el entorno (cogiendo por defecto development si no indicamos nada) y abre un cliente de SQL con los datos que lee del fichero config/database.yml, con lo cuál en lugar de un mysql -u user -p password -h host databasename, basta con hacer un script/rsql production para entrar en la base de datos de producción, por ejemplo.
El script no sé de donde es ni que licencia tiene, pero podéis descargar de aquí una versión mejorada por el mismo Juan.
The end
Y eso es todo, hay cosas más personales y hay cosas que son un must do, pero seguro que os resultan útiles.
¿Y tú tienes algún consejo?

9 Jun 2007 | 04:33 PM
Que gusto cuando lo que haces le es útil a alguien :D
Yo por mi parte últimamente pongo:
routing_navigator: Te añade una web donde puedes consultar las rutas de tus routes.rb. Muy útil cuando empiezas a trastear con named routes y resources. http://agilewebdevelopment.com/plugins/routing_navigator
textmate_footnotes: Cuando hay una excepción genera enlaces para abrir en textmate los archivos del stack en la línea que había en ejecución.
http://agilewebdevelopment.com/plugins/textmate_footnotes
9 Jun 2007 | 06:35 PM
Súper interesante... nada de ésto viene en los libros. :-) Me lo guardo.
9 Jun 2007 | 07:36 PM
Ya puestos... lo conorecéis... pero bueno...
Para ahorrar tiempo y comenzar con una aplicación configurada a nuestro gusto me resultó muy interesante este post de Josh Susser: Stop using the rails command.
Limpias tu aplicación de inicio -comentarios, etc.- le metes tus plugins, etc y la dejas como tu aplicación de inicio ideal, la subes a subversion y, cada vez que necesites comenzar haces un checkout en vez de usar el comando Rails. :-)
9 Jun 2007 | 08:28 PM
muy útiles los consejos. me quedo sobre todo con el annotate_model ya que ya me ha pasado una cuantas veces el tener que irme al fichero de la migración o ver las columnas de la tabla para recordar los atributos del modelo
10 Jun 2007 | 11:35 AM
Yo otra cosa que hago es poner svn:ignore al directorio /log y también instalar un plugin que te mostraba la última traza de la aplicación si añades e parámetro ?log! a la URL (no lo recuerdo y ahora mismo no estoy en casa)
Ah, y el script rsql salió de aquí (kudos para Tadman): http://maximumretro.com/articles/2006/10/10/quick-ruby-on-rails-s...
11 Jun 2007 | 08:15 AM
Como bien dices deberían entrar en las características de serie y por defecto.
Gracias por compartirlas ;-)