rails

Migración de ficheros de FileColumn a Paperclip

Dejo aquí una chuletilla para migrar los attachments de FileColumn a Paperclip que tenía por ahí guardada desde hace meses.

En este caso lo hice en la migración pero se puede hacer en una tarea rake, o directamente desde la consola. Una vez que tienes los campos necesarios para Paperclip, y los datos del attachment definidos en el modelo, puedes hacer:

Modelo.all.each do |f| 
  f.fichero = File.open("#{RAILS_ROOT}/public/modelo/fichero/#{f.id}/#{f.fichero_viejo}",'rb')
  f.save
end 

Borrar sesiones viejas en Rails 2.3 con ActiveRecordStore

Tags:

Tarea rake para borrar las sesiones que no se han utilizado en las ultimas 3 horas.

desc "Borrar de la base de datos la sesiones que han expirado ."
task :delete_old_sessions => :environment do
 sesiones = ActiveRecord::SessionStore::Session.find(:all, :conditions => ['updated_at < ?', 3.hours.ago])
 sesiones.each {|s| s.delete}
end

Instalación de Rails y Passenger en Ubuntu 8.04 (Hardy)

Instalación de ruby:

sudo apt-get install build-essential 
sudo apt-get install ruby rdoc ri irb libopenssl-ruby1.8 ruby1.8-dev

Instalación de rubygems desde las fuentes, porque los paquetes para Ubuntu no están disponibles para la última versión:

cd /usr/local/src/
sudo wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
sudo tar xzfv rubygems-1.3.1.tgz
cd rubygems-1.3.1
sudo ruby setup.rb

sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

Ahora puedes borrar los ficheros que has descargado en/usr/local/src/ si quieres.

Cambiar el tamaño por defecto de los text_field y text_area

Por fin he descubierto cómo se cambia el tamaño por defecto de los text_field y los text_area en Rails:

ActionView::Helpers::InstanceTag::DEFAULT_FIELD_OPTIONS = { "size" => 80 }
ActionView::Helpers::InstanceTag::DEFAULT_TEXT_AREA_OPTIONS = { "cols" => 80, "rows" => 10 }

Así­ en vez de modificar los tamaños de los campos uno a uno en los formularios puedo poner por defecto en el environment el valor que más uso y sólo especificarlo en las excepciones.

Llevaba tiempo buscándolo :)

Programación ágil con Ruby on Rails

Se nos habí­a pasado, poner por aquí­, el último artí­culo que publicamos hace unas semanas en la revista de Sólo Programadores sobre Ruby on Rails donde explicamos como hacer una sencilla aplicación de encuentros digitales.

Orden por defecto de los elementos de una asociación

Un ejemplo:

Tenemos talleres de formación y para cada taller puede haber varias sesiones en diferentes fechas.

class Sesion < ActiveRecord::Base
  belongs_to :taller
end



class Taller < ActiveRecord::Base
  has_many :sesiones, :order => 'fecha'   
end

Así­ cuando hagas @taller.sesiones, por defecto estarán ordenadas por fecha.

Rake task para generar diagramas con RailRoad

Hoy estaba usando RailRoad para generar los diagramas de modelos y de controladores de un proyecto Rails en el que estoy trabajando y he visto que en la página de RailRoad vení­a el código (gracias a Thomas Ritz) de una tarea rake que genera los diagramas en svg y los deja en el directorio doc de la aplicación.

Error de SSL al instalar Rails

Tags:

Si al intentar instalar Rails en Ubuntu da un error como

$ sudo gem install rails
ERROR:  While executing gem ... (Gem::Exception)
    SSL is not installed on this system

es que hay que instalar libopenssl-ruby

$ sudo apt-get install libopenssl-ruby

Al menos así­ es como ha funcionado en mi viejo pc, al que le he regalado una instalación nuevecita de Rails por Navidad ;)

Optimistic locking

Lo que voy a contar aquí­ está mucho mejor explicado en el Railscast #59 Optimistic Locking. Es una forma de evitar que un registro sea editado por dos usuarios al mismo tiempo y se pierdan los cambios de uno de ellos, al ser sobreescritos por el otro. Para ver un ejemplo visual y con más detalle mejor en el video de Railscasts. Aquí­ sólo cuento lo básico y sin profundizar mucho.

Incluir en la tabla un campo integer lock_version

Poner este campo como hidden en el formulario de edición.

RESTful authentication con activación de usuarios

Esta mañana he estado pegándome con el plugin restful_authentication para que activase correctamente los usuarios. Por "suerte" Jaime estaba en las mismas y después de hablar un ratillo por jabber hemos conseguido que funcionase correctamente.

Páginas

Subscribe to RSS - rails