Hola, esta es una gema que utilizo y me parece muy útil para tener de forma más accesible los atributos que componen un modelo.
Funciona de la siguiente forma, toma la información del schema.rb y la coloca como un comentario por encima de la cabecera del modelo.
Por ejemplo, para un modelo Usuario.rb, generado con Devise, podríamos tener:
# == Schema Information
#
# Table name: usuarios
#
# id :integer not null, primary key
# email :string default(""), not null
# encrypted_password :string default(""), not null
# nombre_usuario :string
# reset_password_token :string
# reset_password_sent_at :datetime
# remember_created_at :datetime
# sign_in_count :integer default(0), not null
# current_sign_in_at :datetime
# last_sign_in_at :datetime
# current_sign_in_ip :string
# last_sign_in_ip :string
# created_at :datetime not null
# updated_at :datetime not null
#
class Usuario < ActiveRecord::Base
...
end
Para usarla, lo que debemos hacer es:
1.- Agregar en el Gemfile del proyecto:
gem 'annotate'
2.- Ejecutar en la consola
bundle install
3.- Ejecutar en la consola el comando
annotate
Detalle a tener en cuenta: esta gema funciona con la información que está contenida en el schema, el cual se escribe con las migraciones que realicemos. Por lo tanto, primero deben correrse las migraciones y después ejecutar el comando ‘annotate’, caso contrario la gema no encontrará ninguna información.
Otro detalle, cada vez que se modifique nuestro schema, ya sea que agreguemos o quitemos atributos, agreguemos o quitemos tablas, o las modificaciones que se realicen sobre el mismo y requerimos representar esa informacón en nuestros modelos, debemos ejecutar nuevamente el comando ‘annotate’ ya que la gema no actualiza la información automáticamente.
Dejo enlace oficial con la documetación de la gema:
https://github.com/brentgreeff/annotate