Ver que attributos tiene un objeto ActiveRecord

El plugin annotate models nos permite ver los atributos de una clase ActiveRecord (columnas de la tabla en la base de datos) de manera cómoda en el código de la clase. Es muy útil para no tener que estar consultando la estructura de la base de datos al olvidarnos de los métodos de una clase, de manera que podremos programar más rápido y no repetir declaraciones (DRY) ya que lo hace automáticamente.

Consiste en una tarea para rake que al ejecutarla nos escribe en las cabeceras de las clases del modelo la información asociada que obtiene de la base de datos. Por ejemplo:

# == Schema Information
# Schema version: 39
#
# Table name: signatures
#
# id :integer(11) not null, primary key
# lema :string(255)
# language_id :integer(10) default(0), not null
# domain_id :integer(10) default(0), not null
# created_on :date
# category_id :integer(10) default(0), not null
# linguistic_cue_group_id :integer(10) default(0), not null
#


Cómo instalarlo:
      1. Instalar el plugin
      script/plugin install \
      http://svn.pragprog.com/Public/plugins/annotate_models

      2. Ejecutar el script que anota los modelos
      rake annotate_models


Referencias:

Etiquetas: , ,

Posted by Spejman at 12:19 p. m. | 2 comments | links to this post read on

Redes Bayesianas para Ruby (bn4r) release 0.9

Redes Bayesianas para Ruby (bn4r) permite crear, modificar, resolver, importar y exportar redes bayesianas, pruébalas y infiere alguna probabilidad con ellas!

Esta entrega incluye soporte para nodos con variables discretas, ahora puedes usar nodos en las redes con valores como {poco, normal, mucho, muchísimo} en lugar de {cierto, falso}

La función de exportar a Microsoft Belief Network se ha mejorado.

Al igual que en entregas anteriores, puedes resolver tus redes mediante los algoritmos enumeration ask, prior sample, rejection sampling o likelihood weighting.

Se agradecerá ayuda con el testeo, si estás interesado puedes contactar conmigo en http://rubyforge.org/projects/bn4r o en sergio.espeja ( ya sabes ... ) gmail.com.

Más información:

Etiquetas: , ,

Posted by Spejman at 8:41 p. m. | 0 comments | links to this post read on

ActiveRecord: diferencias entre save, save!, create y create!

ActiveRecord define varias maneras para guardar un objeto (instancia de un modelo) en la base de datos, es importante saber como actúa cada una para luego no tener sorpresas y usar el más adecuado en cada momento.

  • save: Devuelve true si el objeto se ha guardado correctamente, o nil en caso contrario. No genera ninguna excepción.


  • save!: Devuelve true si el objeto se ha guardado correctamente, y si no ha podido guardarse lanza una excepción con el error.
    Esta excepción es del tipo ActiveRecord::RecordInvalid, se lanza principalmente cuando hay errores de validación (campo obligatorio vacío, email no válido, etc ...) y la podemos usar para mostrar el error al usuario.


  • create: Retorna siempre el objeto independientemente de que se haya guardado con éxito o no, tenemos que consultar el objeto por si ha ocurrido algún error de validación.


  • create!: Aparece en Rails 1.2, yo no lo he podido probar todavía pero por lo que pone en Agile Web Development with Rails devuelve el objeto si se ha guardado con éxito, sino retorna una excepción al igual que save!



Más información:


Etiquetas: , ,

Posted by Spejman at 4:59 p. m. | 0 comments | links to this post read on

Año nuevo, feed nuevo!

Aprovecho que cambiamos de año para publicar el feed de mi blog mediante feedburner que permite ver estadísticas del uso de tu feed entre otras cosas.

Agradecería que cambiaseis la suscripción en vuestro blog reader por esta:
http://feeds.feedburner.com/spejman

Muchas gracias y perdonad las molestias!
Posted by Spejman at 7:25 p. m. | 0 comments | links to this post read on
Recommend Me


XING
View Sergio Espeja's profile on LinkedIn













Enlaces