Archive for Abril, 2008

Rails: Páginas estáticas

Sábado, Abril 12th, 2008

Hace no mucho llegaría a vuestros feeds el consejo de Josh Susser sobre como hacer sencillo lo que normalmente nos tiene un rato dubitativos. ¿Donde meter/asociar las dichosas páginas estáticas?

Pese a que la solución de Josh es elegante, di con otra que me pareció bastante más dinámica y que con pequeños ajustes, se convierte, de manera oficial y por vía de apremio, en la solución de aquí en adelante.

Tan sencillo como crearte el controlador Pages..

rails ruby
Copialo

.. y añadir lo siguiente al routes.rb

map.page '/page/:name', :controller => 'pages', :action => 'show', :name => nil

Luego podrás añadir tantos páginas como quieras a la carpeta app/views/pages y enlazarlas es tan sencillo como..

# Con el fichero ayuda.html.erb en app/views/pages
link_to "Ayuda", page_path('ayuda')

Creando un repositorio Git remoto

Sábado, Abril 5th, 2008

Desde hace un tiempo, en la comunidad Rails, parece que no se habla de otra cosa que no sea Git: un control de versiones que, diseñado por Linus Torvald (se ve que tenía algún que otro rato libre), trae consigo una serie mejoras con respecto a los SMCs ya existente y sobre los que ya corren proyectos como: el propio fuente de Linux, Capistrano, Prototype o Scriptaculous.

Hace un par de días David Heinemeier anunció que ahora sería el core de Rails el que tomaría el mismo camino. Estoy en que se debe haber enterado de que en Flowers In Space no usamos otra ya otra cosa y no ha querido ser menos ;-P

Toda esta historía era porque quería completar la entrada de La Capitana con el método que seguimos para crear un repositorio para cualquiera de nuestros nuevos proyectos. Vamos allá.

Situados en local y dentro del proyecto que quiero gestionar con Git, realizamos lo siguiente:


1. $ git init
Si la carpeta contiene ficheros que versionar pasamos al paso 3.
2. $ touch fichero-borrame
3. $ git add .
4. $ git commit -a -m "Commit inicial"

5. $ git repack -d
6. $ git clone --bare -l . /tmp/your-proj.git
7. $ git --bare --git-dir=/tmp/your-proj.git update-server-info

Ya con el proyecto empaquetado nos dispodremos a subirlo. Para ello tendré en mi servidor instalado el git-core (al igual que lo tenía en local) y el usuario git, aunque esto ya es a gusto del consumidor (los temas de sysadmin no es que me apasionen demasiado).


8. $ scp -r /tmp/your-proj.git mi_usuario@miservidor:~/
9. $ ssh miservidor
10. $ sudo cp -r your-proj.git /var/git     # El usuario git debe ser
el owner de /var/git para el clone
11. $ sudo chown -R git:git your-proj.git/

Y ya por último nos clonamos el repositorio al local.


Si nos la vamos a traer a la misma carpeta donde está el "original",
no olvidar cambiarle el nombre al original o darle uno nuevo la nueva copia.
12. $ git clone ~/carpeta_desarrollo git@miservidor:/var/git/your-proj.git
nuevo-nombre-proyecto

Nada más. Suerte!