Apuntes Rails

Apuntes de Ruby on Rails, programación en GNU/Linux y Mac

Ruby para impacientes

TAGS: None

Interesantes apuntes para empezar a usar Ruby

Ruby para Impacientes -> http://geneura.ugr.es/~jmerelo/tutoriales/ruby-para-impacientes/

Problema con Mongrel y los HEADERS

TAGS: None

Resulta que al desplegar una app con un servidor mongrel me fallan las funciones ajax. Mirando el archivo de logs de mongrel veo lo siguiente:

  1.  
  2. tail -n 100 log/mongrel.log
  3.  
  4. Error calling Dispatcher.dispatch #<NoMethodError: You have a nil object when you didn‘t expect it!
  5. You might have expected an instance of Array.
  6. The error occurred while evaluating nil.split>
  7. /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.11/lib/action_controller/cgi_process.rb:54:in `dispatch_cgi’
  8.  

A través de aquí meentero que es problema del action pack y modifico el archivo cgi_process.rb:54

cambio:

  1.  
  2.  if headers.include?(‘Set-Cookie’)

por :

  1. if headers[‘Set-Cookie’]

Reinicio el servidor y andado!!

  1.  
  2.  mongrel_rails stop -P log/mongrel3001.pi
  3.  
  4.  mongrel_rails start -d -e development -p 3001 -P log/mongrel3001.pi</code>

Internacionalización en Rails

TAGS: None

Manual muy completo para internacionalizar una aplicación rails.

http://guides.rubyonrails.org/i18n.html

Adjuntar archivos con Rails

TAGS: None

Interesante artículo para adjuntar archivos con Rails

http://jimneath.org/2008/05/15/swfupload-paperclip-and-ruby-on-rails/

Relaciones Muchos a muchos con tablas “no railianas”

TAGS: None

Si tenemos que usar BD ya existentes y no podemos adaptarlas a Rails… tendremos que adaptar rails a la BD.

Tenemos las siguientes relaciones en la BD

Equipos Equiposprotocolos Protocolos
pkequipos pkequiposprotocolos pkprotocolos
fkequipos
fkprotocolos

Ahora vamos a crear los modelos para relacionar esta tablas con la siguiente advertencia:

IMPORTANTE: El nombre del modelo de la tabla intermedia DEBE DE SER SINGULAR!!!!

Vamos a ver como quedaría

equipos.rb

  1. class Equipos < ActiveRecord::Base
  2.    set_table_name  "equipos"
  3.    set_primary_key "pkequipos"
  4.  
  5.     has_many :equiposprotocolo , :foreign_key => "fkequipos"
  6.     has_many :protocolos, :foreign_key => "fkprotocolos", :through => :equiposprotocolo
  7. end

equiposprotocolo.rb

  1. class Equiposprotocolo < ActiveRecord::Base
  2.     #IMPORTANTE!!! Tanto el nombre del archivo como el de la clase tienen que ser en singular para las tablas de unión!!!!
  3.    set_table_name  "equiposprotocolos" # El nombre de la tabla en la base de datos no importa
  4.    set_primary_key "pkequiposprotocolos"
  5.  
  6.    belongs_to :equipos , :foreign_key => "fkequipos"
  7.    belongs_to :protocolos , :foreign_key => "fkprotocolos"
  8. end

protocolos.rb

  1. class Protocolos < ActiveRecord::Base
  2.     set_table_name  "protocolos"
  3.    set_primary_key "pkprotocolos"
  4.  
  5.  has_many :equiposprotocolo , :foreign_key => "fkprotocolos"
  6.  has_many :equipos, :foreign_key => "fkequipos", :through => :equiposprotocolo
  7. end

Con esto podemos hacer por ejemplo

  1. Equipos.find(1).protocolos
  2. Protocolos.find(1).equipos

Espero que os sea de utilidad

Creación de ScreenCast en Ubuntu

TAGS: None

He tenido que crear una serie de video-tutoriales para Guadalinfo y tras buscar un poco he encontrado esta herramienta:

RecordMyDesktop

Es muy fácil de usar. Para pasar los vídeos OGV a AVI solo tenemos que hacer:

mencoder mi-video.ogv -ovc xvid -xvidencopts  fixed_quant=5 -o mi-video.avi

Puede que nos falten algunas librerías:

sudo apt-get install mencoder libavformat52

Algunas aplicaciones más para crear ScreenCast son:

WinK: Muy recomendable. Crea en formato flash y podemos hacer la animación interactiva
CamStudio
Screencast-o-Matic: Crea los vídeos desde la propia web

© 2009 Apuntes Rails. All Rights Reserved.

This blog is powered by Wordpress and the Magatheme Wordpress Theme by Mid MO SEO.