Interesante artículo para adjuntar archivos con Rails
http://jimneath.org/2008/05/15/swfupload-paperclip-and-ruby-on-rails/
Interesante artículo para adjuntar archivos con Rails
http://jimneath.org/2008/05/15/swfupload-paperclip-and-ruby-on-rails/
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
equiposprotocolo.rb
protocolos.rb
Con esto podemos hacer por ejemplo
Espero que os sea de utilidad
Aunque parezca una tontería pero siempre es util tener un partial con un selector de fecha.
Creamos un parcial por ejemplo _date_select.erb
Ahora solo falta llamar desde una vista usando
Fácil, verdad?
He tenido que crear una serie de video-tutoriales para Guadalinfo y tras buscar un poco he encontrado esta herramienta:
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
Recién actualizado Rails a su versión 2.2 me encuentro con el siguiente error:
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
Intento instalar la gem de mysql pero me suelta:
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Bien, he dado con este post donde explica que solo tenemos que instalar lo siguiente:
En mi mac me ha pasado lo mismo y e seguido este artículo:
También me he encontrado con los siguientes problemas con algunas de las aplicaciones anteriores que tenia.
undefined method `cache_template_extensions=' for ActionView::Base:Class
Se soluciona comentando la linea cache_template_extensions = false de config/environments/development.rb
En otra aplicación me soltaba:
uninitialized constant ApplicationController
Se soluciona haciendo
Y con el plugin filecolumn igual:
Nos vamos al archivo file_column.rb y en la linea 619 ponemos
Espero que os sea de ayuda
Para simplificar los backups de nuestras aplicaciones podemos usar rake. Para hacernos con el es recomendable consultar el siguiente artículo Ruby on Rails Rake Tutorial
Los scripts propios los creamos en la carpeta lib/task
Vamos a crear un conjunto de acciones (task) dentro de la categoría (namespace) rbackup.
Queremos que este script nos haga un backup de la base de datos y de algunas carpetas de public (por ejemplo la carpera upload) y que nos copie todo comprimido en un archivo accesible desde la web.
Lo primero que hacemos es crear el archivo lib/task/rbackup.rake y definir la categoria:
Bien, ahora vamos a definir las acciones que vamos a necesitar
Ejecutando rake –task y nos da información de losa task disponibles
Para ejecutar estas acciones podemos poner rake rbackup:base_datos o rake rbackup:all
Vamos a crear los task….
Este nos creará los directorios si no existen
Para hacer el backup de la base de datos extraemos los datos del archivo database.yml para poder usarlos con el comando mysqldump
Como usamos YAML es necesario poner al principio del archivo require ‘yaml’
con => :crea_dir le indicamos que tiene que ejecutar antes el task crea_dir
Nota: si no ponemos -h #{@db['host']} puede salirnos el error mysqldump error 2002
Ahora comprimimos las carpetas usando tar.
En la variable @carpetas ponemos las carpetas de pubic de las que queremos hacer el backup
Por ultimo hacemos un task que nos ejecute todas las acciones:
Ya tenemos nuestro script rake terminado. Ahora podemos crear un controlador para tener acceso a los archivos generados y poder borrarlos una vez descargados.
Creamos un controlador rbackup_controller.rb y ponemos:
Ahora solo queda poner en la vista del controlador:
Listado de Archivos generados<br><br>
<% for archivo in @archivos %>
<%=link_to archivo, “backup/#{archivo}”%> - <%=number_to_human_size File.size(”#{RAILS_ROOT}/public/backup/#{archivo}”)%> - <%=link_to “borrar” , {:controller=>:rbackup,:action=>:borrar,:archivo=>archivo}, :confirm =>”Desea borrarlo?”%><br>
<% end %>
y tenemos un sistema de backups básico.
He leÃdo aquà un artÃculo muy ilustrativo de la nueva forma de trabajar con scaffold en Rails 2.0. El resumen es el siguiente:
Si tienes una copia de un repositorio Subversion y quieres limpiar los directorios .svn es tan facil como:
rsync -rC original copia_limpia
Bien, un paso mas en la gestión de proyectos con Rails es la creación de diagramas antes y durante el proyecto. Lo ideal es crear un modelo UML (cosa que por desgracia casi nunca hago) antes de empezar a picar código. Para ello he encontrado algunas herramientas (para Mac)que nos pueden ayudar.
TaskSketch: Utilidad muy sencilla e intuitiva. Aunque no es muy potente es muy útil para hacer diagramas que especifiquen las distintas tareas que realizará la aplicación y los diagramas de flujo.
RailRoad: Es un script Ruby que analiza nuestra aplicación Rails y crea un diagrama de clases. La verdad que es bastante sorprendente los diagramas que puede llegar a crear.
Para instalarlo solo tenemos que hacer: gem install railroad
Ahora ejecutamos este comando en la carpeta de nuestro proyecto: railroad -a -i -o modelos_completo.dot -M
Omnigraffle: La utilidad de creación de diagramas mas potente que he encontrado. Puedes importar los archivos DOT generados por RailRoad, el problema, no es gratuito.
Por ultimo comentar que con VbVisualizer tambien se pueden generar diagramas de la base de datos.
Espero poner mas adelante un post de mis experiencias con estas herramientas, UML y Rails
© 2009 Apuntes Rails. All Rights Reserved.
This blog is powered by Wordpress and the Magatheme Wordpress Theme by Mid MO SEO.