Acts as date Module
Thursday, 26 June , 2008
Esta es una solución que se me ocurrió para hacerme más cómodo el trabajo con
el atributo created_at de un modelo, por ej:
Para saber el año de creación de un post, haríamos lo siguiente:
>> p = Post.find(1) >> p.created_at.month => 6
como podemos observar retorna 6, pero resulta que yo lo necesito necesito con el siguiente formato: “06″. Lo mismo pasa con el día:
>> p = Post.find(1) >> p.created_at.day => 4
module ActsAsDate
def year
created_at.strftime("%Y")
end
def month
created_at.strftime("%m")
end
def day
created_at.strftime("%d")
end
def year_month
[year, month]
end
# Armo un string para usarlo en un find
# ej:
# params = {:year => "2008", :month => "06"}
# Post.all(:conditions => Post.created_at_conditions(params))
#
def self.included(klass)
klass.class_eval do
def self.created_at_conditions(params)
return nil if params[:year].blank? or params[:month].blank?
"created_at like '#{params[:year]}-#{params[:month]}%'"
end
end
end
end
Entonces tenemos que incluir este módulo en modelo que lo queremos usar:
class Post < ActiveRecord::Base include ActsAsDate end
Ahora con esto directamente hago p.month, p.day, p.year y obtengo el mes, día y año de creación del post con el formato que necesito y escribiendo menos código :). Además agregué un método que me arma el param conditions, que se podría un usar así por ej:
class PostsController < ApplicationController
def list
@posts = Post.paginate(
:page => params[:page],
:order => 'created_at DESC',
:conditions => Post.created_at_conditions(params)
)
respond_to do |format|
format.html
format.xml { render :xml => @posts }
end
end
end
De esta manera no tengo que estar preguntando en el controller si vienen (year y month) como parámetros, por ahora este modulo sólo funciona con el atributo created_at por que está hardcodeado, pero con pocas modificaciones se podría hacer que funciona para cualquier atributo.
Ahora lo que me pregunto es si Rails ya tiene alguna solución mejor para este problema, si alguien la conoce que me lo haga saber por favor (yo no la encontré), además se aceptan modificaciones, sugerencias y comentarios.
Información de debug en Rails
Thursday, 26 June , 2008
Muchas veces cuando estamos desarrollando una aplicación web necesitamos mirar cierta información de debug, acá les dejo una mi versión de este senippet que leí por acá .
La idea es poner este código en un partial:
app/view/views/shared/_debug_info.html.erb
y luego ponemos el render en el layout de la aplicación:
<%= render :partial => 'shared/debug_info' %>
Va el pastie: http://pastie.org/222621
Rails edge: Nuevo método Enumerable#many?
Friday, 13 June , 2008
Rails agrega un nuevo método al módulo Enumerable. Vamos al código para explicar cómo funciona este nuevo método:
>> Post.all.many?
=> false
>> Post.create({:title => "hola", :post => "hola"})
>> Post.all.many?
=> false
>> Post.create({:title => "otro hola", :post => "otro hola"})
>> Post.all.many?
=> true
>> Post.all.size
=> 2
>> posts = Post.find(:all, :conditions => {:post => "hola"})
>> posts.many?
=> false
>> posts.size
=> 1
La función de este nuevo método many? es básicamente encapsular collection.size > 1, es un detalle bastante cómodo que opinan uds?
Grupo de usuarios de Ruby del litoral
Sunday, 02 September , 2007
Esta semana hablando con algunos chicos de lug oro verde nos surgió la idea de hacer una reunión con todos aquellos que estamos interesados en ruby y ruby on rails, entonces pensé… por que no crear un grupo de usuarios de ruby del litoral? y acá está el resultado: tenemos wiki y lista de correo , desde ya litoraleños están todos invitados a participar, los esperamos!!!.
Oro verde - Desarrollo web ágil sobre rieles
Tuesday, 28 August , 2007
Bueno, lo primero que quiero hacer es agradecer a la gente de lugoroverde por invitarnos a las jornadas, la charla estuvo muy buena (mejor que de lo que yo creía ) la gente quedó muy entusiasmada con esto de Rails, luego de algo de teoría hicimos un pequeño ejemplo práctico, creamos un modelo y mostramos el scaffold y como personalizar las vistas creadas.
Les dejo acá los slides de la charla dwsr.pdf

Charla “Desarrollo web ágil con Ruby on Rails”
Friday, 24 August , 2007
El sábado 25 de agosto voy a dar una charla con Esteban Fornal (más conocido como Chaco) en las 4tas jornadas regionales de software libre de oro verde en Entre Ríos, la charla va a ser una introducción a Ruby on Rails, mostraremos las principales características del framework (al menos las que más nos gustan a nosotros) y si hay tiempo vamos a hacer algo de práctica. Nuestro prinicipal objetivo es motivarlos a que prueben RoR por cuenta propia, y entren en este marivolloso mundo de la programación ágil y divertida.
Los esperamos!!!
