Trucos para migraciones de rails

Aqui hay un excelente articulo con algunos tips y trucos.

Publicado en Uncategorized | Deja un comentario

Problemas con Bundle and native extensions

En ocasiones no encontramos con algunos errores cuando se instalan gemas que usan librerías del sistema para compilarse. Si estas usando Linux Ubuntu es necesario instalar los siguiente paquetes:

sudo apt-get install libgmp3-dev
Publicado en Uncategorized | Deja un comentario

Problemas con Git y SSL

Si se tiene problemas con git y SSL en https, se puede probar configurar git para que ignore este error:

git config --global http.sslVerify false

Publicado en Uncategorized | Deja un comentario

Problema de mcrypt cuando se instala Laravel

Si al instalar Laravel se topan con el error «Mcrypt PHP extension required» y ya tienen instalada la libreria correctamente, prueben ejecutar sudo php5enmod mcrypt y luego reiniciar el servidor apache. A mi me funciono!

Publicado en Uncategorized | Deja un comentario

Algunas clases css importantes para personalizar el plugin Chosen

El plugin para jquery Chosen es utilizado para cambiar la apariencia y funcionalidad de los aburridos select que vienen por defecto en los navegadores. Pero algunas veces su apariencia no se acopla del todo al estilo generar que tenemos en nuestra aplicacion, por ejemplo, cuando lo usamos junto a Twitter Bootstrap. Aqui dejo algunas clases para poder modificar su apariencia:

Modificar altura:

.chosen-container-single .chosen-single {
height: 32px !important;
padding: 4px 0 0 10px !important;
}

Modificar la imagen de despliege:

.chosen-container-single .chosen-single div {
padding-top: 4px;
}

Modificar color de seleccion:

.chosen-container .chosen-results li.highlighted {
background-color: #AF2D27;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #AF2D27), color-stop(90%, #AF2D27));
background-image: -webkit-linear-gradient(#AF2D27 20%, #AF2D27 90%);
background-image: -moz-linear-gradient(#AF2D27 20%, #AF2D27 90%);
background-image: -o-linear-gradient(#AF2D27 20%, #AF2D27 90%);
background-image: linear-gradient(#AF2D27 20%, #AF2D27 90%);
color: #fff;
}

Estas clases son para un select de una sola seleccion, para modificar las de multiple seleccion se utiliza «.chosen-container-multi».

Publicado en Uncategorized | Etiquetado | Deja un comentario

Instalando RVM en Linux

Esta es una guia rapida para hacer la instalacion de RVM (Ruby Version Manager) en linux, en mi caso, Ubuntu 11.10

Primero necesitamos algunas herramientas basicas para efectuar la instalacion:

sudo apt-get install build-essential curl

En este caso, curl es para bajar los archivos de RVM y el build-essential contiene varias herramientas fundamentales, entre ellas GCC y MAKE para la compilacion de los archivos.

Luego bajamos las librerias de desarrollo readline (Que permite editar lineas de texto en el bash e IRB), zlib que es necesaria para el funcionamiento de RubyGems, OpenSSL y LibXML.

sudo apt-get install zlib1g-dev libreadline-dev libssl-dev libxml2-dev

Ya teniendo todo esto instalado, ahora si que podemos instalar RVM !!!

curl -L get.rvm.io | bash -s stable

Una vez que todos los archivos bajen y RVM se instale, agregamos al archivo .zshrc o .bashrc (dependiendo del shell que estemos usando), la siguiente linea:

source ~/.rvm/scripts/’rvm’

Y listo… si todo ha salido bien (eso espero!) deberiamos tener RVM en nuestro sistema, luego de reiniciar el terminal, por supuesto.

Publicado en Uncategorized | Deja un comentario

Dependecias para Nokogiri

Estas son algunas de las dependencias que puede necesitar nokogiri:
libxml2 libxml2-dev libxslt1-dev

Para instalarlas en linux debemos usar apt-get

sudo apt-get install libxml2 libxml2-dev libxslt1-dev

Publicado en Uncategorized | Deja un comentario

Dependencias

El otro dia, tuve que formatear la maquina y reinstalar linux. Cuando llego el momento de instalar rvm, me tope con que muchas de las dependencias para ejecutar rvm y ruby de manera correcta no estaban instaladas… asi que antes de instalar rvm asegurense de que al menos los siguientes paquetes esten instalados:

sudo apt-get install build-essential openssl libssl-dev zlib1g zlib1g-dev libreadline5 libreadline5-dev
Nota: quizas libreadline5-dev tenga que ser sustituido por libreadline-gplv2-dev.

Ademas instalen ruby asi: apt-get install ruby-full

Si luego de instalar rvm y correr alguna aplicacion rails tienen un error de este tipo:
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Quizas deban hacen un downgrade a gem de la siguiente manera: gem update –system 1.6.2
aunque en algunos blogs lo han solucionado con: sudo gem pristine –all –no-extensions

Espero que algo de este sea de ayuda.

Publicado en Uncategorized | Deja un comentario

Overriding

Como algunos de nosotros hemos visto en Rails, cuando ocurre un error en algun dato de un formulario, el comportamiento por defecto de Rails es envolver los campos con errores dentro de una etiqueta «<div class=’field_with_errors’></div>». Esta etiqueta a veces rompe el maquetado de la pagina agregando espacios no deseados.

Este comportamiento esta deteminado dentro de ActionView::Base de rails en forma de proc:

@@field_error_proc = Proc.new{ |html_tag, instance| 
"<div class=\"fieldWithErrors\">#{html_tag}</div>" 
}
 cattr_accessor :field_error_proc
end

Por lo tanto podemos hacer un Overriding y hacer que el proc genere un <span></span> en lugar del problematico div, esto lo hacemos en el application.rb:

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
'<span class="fieldWithErrors">'.html_safe << html_tag << '</span>'.html_safe
end

El codigo anterior no genera los espacios no deseados y ademas es igual de configurable, y usa .html_safe para asegurar que corra en Rails 3.

Publicado en Uncategorized | Deja un comentario

Comando del Server Rails

A veces necesitamos mas que solo script/server. Aqui estan los comando para modificar el inicio del server rails.

Usage: server [options]
-p, –port=port                  Runs Rails on the specified port.  Default: 3000
-b, –binding=ip                 Binds Rails to the specified ip.  Default: 0.0.0.0
-d, –daemon                     Make server run as a Daemon.
-u, –debugger                   Enable ruby-debugging for the server.
-e, –environment=name           Specifies the environment to run this server under (test/development/production).  Default: development
-s, –config-script=path         Uses the specified mongrel config script.

-h, –help                       Show this help message.

Publicado en Uncategorized | Deja un comentario