Publicidad:
Terra
La Coctelera

Mis Tags > rubyonrails

Hay 31 artículos con el tag rubyonrails.

Otros artículos en La Coctelera
clasificados con rubyonrails

Cosas que no debes hacer en rails

Leo vía Riding Rails que en gluttonous han escrito un post sobre Cosas que no debes de hacer en Rails.

El post resalta las siguientes recomendaciones:

  • No acceder a params, flash, session, request, response con @ delante. Además Rabble (próximamente en the cocktail) recomienda no mezclar el uso de tipologías (flash[:notice] con flash['notice'])
  • Evitar usos de funciones obsoletas como find_all, find_first o render_partial utilizando en su lugar find(:all), find(:first), render :partial ...
  • Hacer versiones 'no ajax' para cada acción ajax, así siempre sabremos a dónde llevar a la gente que no use javascript.
  • Huye del scaffold. :D
  • No uses componentes (hace poco salió esto en la lista de correo).
  • Usar motores 'precocinados' (de autentificación o búsqueda) sólo cuando sea procedente.
  • Usa layouts! Evita reescribir un montón de código.
  • No usar la paginación (built-in), genera guarricódigo.

No se que pensais, pero en casi todos los puntos tiene razón. Otros son más discutibles, o dependen de lo que se considere 'uso procedente', pero vamos, en general me parecen recomendaciones bastante saludables (a incluir en el decálogo del programador 'sanote').

Parece ser que al final nos vamos a ver las caras más de uno por la RailsConf en Londres. De momento que se sepa va Xavier Noria, Fernando tal y como dice en su post, Nando, y seguro que muchos más.

Espero que sirva de calentamiento para la conferencia rails en Madrid el próximo noviembre.

Flash 8 upload + rails

Veamos, a mi esto me supuso una pequeña odisea, así que os escribo este post y así vais prevenidos para el día que os haga falta.

Estoy realizando un proyecto en rails + flash, y la subida de imágenes desde flash8 era un requerimiento, aunque una pequeña parte del proyecto.

El caso es que yo para empezar a familiarizarme con Filereference me leí este fantástico tutorial de Cristalab, donde se hace upload pero utilizando php por detrás. Yo estaba usando rails, entonces me iba a hacer falta adaptarlo.

Peeeeeero cada vez que trataba de subir una imagen me daba errores el cgi. Resulta que flash8, al hacer un upload envía cabeceras vacías o incorrectas, y podemos ver mensajitos en el log como

o bien

Dispatcher failed to catch: bad content body 
 Dispatcher failed to catch: no content body 

Finalmente dando un googleo me he encontrado este post en bubbleshare con el apropiado título de Dolores de cabeza del flash8 upload donde encontramos la solución al envío de cabeceras vacias o incorrectas de flash8 frente a rails. También lo he encontrado reflejado aquí.

Cuando ya estás haciendo toooodo esto te entra la cagalera cuando ves el "__corrupt_multipart_data"=>"true", algo así:

Processing HomeController#upload (for x.x.x.xat 2006-08-29 15:43:17) [POST]
   Session ID: 571a450fd1341dec9e6516015490ebe9
   Parameters: {"Filename"=>"imagen.png", "__corrupt_multipart_data"=>"true", "action"=>"upload", "controller"=>"home", "Filedata"=>#}

Pero nuestros problemas ya han pasado a la historia con el parchecito que hemos puesto. En este post de collcoll nos dejan el código que tienen para manejar el archivo una vez ha llegado, y funciona perfectamente. Os lo pongo aquí también. Este por ejemplo nos dejaría copiada la imagen con el mismo nombre dentro de la carpeta images/upload.

def upload
 
 	@content_name = @params['Filedata'].original_filename.gsub(/[^a-zA-Z0-9.]/, '_')
 		File.open("#{RAILS_ROOT}/public/images/upload/"+@content_name, "wb") do |f|
 			f.write(@params['Filedata'].read)
 		end
 	render(:nothing=>true)
 
 end

A partir de aquí cada uno que complique su código todo lo que le haga falta. Por ejemplo, yo una vez guardo los originales se los paso a RMagick para retocar, cortar, pegar, montar y muchos más ar.

No se si vale de mucho, pero he hecho un paquetito con el .fla que he usado para el test, parte del código del controlador, el flash fix. Aquí teneis.

Salud!

Leo en Riding Rails que ya está disponible la última versión del plugin Unobtrusive Javascript y me he puesto manos a la obra para probarlo.

Es muy fácil de instalar y de usar y nos evita tener que hacer trabajo sucio para degradar acciones. En desarrollo funciona bastante bien, y ya le he encontrado utilidad para varias de las cosillas que llevo entre manos.

Rabble en the cocktail

Leo en inwebwetrust, que a su vez leyó en furilo que la gente de the cocktail va a recibir al señor Rabble (hasta hace poco desarrollador de odeo) el próximo 12 de septiembre para hablar sobre Testing en Rails. Que quede constancia!!

SMUPF va tomando forma

Da gusto volver de vacaciones con los deberes adelantados (que no terminados). En unas semanitas el mashup de google maps prometido (al que he bautizado como smupf ¿por qué? ¿por qué no?, chico, me ha gustado el nombre. Es muy... onomatopéyico??).

Nos veremos pronto por aquí, en cuanto termine de 'tunear' el rails en el server y adaptar el diseñito.

Por cierto (y hablando de diseñito), estoy también adaptando una hojita de estilo nueva para el blog, que de vez en cuando es necesario cambiar de aire.

inwebwetrust.net

Ya seguía a Fernando Blat desde su ya cerrado blog taberna del turco. Un buen tiempo más tarde tuve la oportunidad de 'conocerle' en el taller de RoR que dieron en el hacklab y me dió la impresión de que es uno de esos tios que caen bien con sólo verlos, pero que además conocerlo te reafirma en esa sensación (bueno, todos podemos estar equivocados, pero creo que no :D)

Ahora cierra la taberna pero abre su nuevo proyecto in web we trust. Seguro que le irá genial y yo pongo mi pequeñito grano de arena con un enlace a uno de los tios que me terminó de picar con el tema de RoR.

Suerte maestro!