HowTo: Instalando unos buenos Railes [RoR]
Publicado por blaxter - 15 Jul 2006 a las 17:12
Ruby es un lenguaje de script similar a python, que aunque no era muy conocido anteriormente (antes de RoR), gracias al framework RoR, está creciendo en popularidad a pasos agigantados y además por méritos propios.
El framework Rails se basa en el patrón de diseño MVC (model view controller). Igual otro día explico en detalle este patrón, pues es muy interesante. Ahora vayamos con la instalación de Rails, que es de lo que se trata en este post.
Podríamos hacer la instalación con un simple $ sudo aptitude install rails, pero es mejor instalarlo mediante Gem, un gestor de paquetes para ruby (algo así como PEAR para php o cpan.org para perl, o el propio apt-get para Debian)
Supongo que tenemos instalada una base de datos, por ejemplo MySQL, y repositorios universe de Ubuntu dapper (para otras distros se podrían aplicar todos los pasos, realizando, quizás, ciertas modificaciones...). Primero instalaremos Ruby y unos paquetes adicionales necesarios para el correcto funcionamiento de Gem
$ sudo aptitude install ruby irb rdoc libzlib-ruby libyaml-ruby liberb-ruby rdoc libdrb-ruby libyaml-ruby libzlib-ruby
irb es un entorno de ejecución interactivo de ruby, podemos ejecutarlo y hacer un hola mundo xD
$ irb
irb(main):001:0> print "hola mundo!"
hola mundo!=> nil
innncreible xD. Ahora instalemos Gem
$ cd /tmp && wget http://rubyforge.org/frs/download.php/28174/rubygems-0.9.5.tgz
$ tar xfz rubygems-0.8.11.tgz
$ cd rubygems-0.8.11/
$ sudo ruby setup.rb
Ok, ya lo tenemos instalado, para información de como funciona, ver aquí. Ahora para instalar rails solo tenemos que hacer:
$ sudo gem install rails --include-dependencies
Ya está!, tenemos Ruby On Rails instalado! Mooola. Vale, pero y ahora que hago?. Vamos a hacer un par de pruebas para ver que realmente funciona todo bien.
Suponemos que nuestro directorio de trabajo será ~/dev/rails, por ejemplo:
$ cd ~/dev
$ rails rails # el parametro es el nombre de la carpeta que creará
$ cd rails
$ script/server
Ok, ahora si entramos en http://localhost:3000/ veremos la pantalla de bienvenida de Rails. Vale, funcionar, funciona, o algo sale. Pero como pongo hago yo cosas?, eh?, eh?. Vamos a hacer un hola mundo!.
Paramos el servidor (ctrl+c) y ejecutamos
$ script/generate controller prueba
$ vim app/controllers/prueba_controller.rb # lo modificamos tal que asi:
$ more app/controllers/prueba_controller.rb
class PruebaController < ApplicationController
def index
render_text "hola mundo!"
end
def lalala
render_text "como mola esto nano!"
end
end
$ script/server
Y al entrar a http://localhost:3000/prueba veremos nuestro gran hola mundo! :). Y entrando a http://localhost:3000/prueba/lalala veríamos el otro texto que hemos escrito. Inncreible xD.
Vale, ya hemos hecho una tontería, hagamos otra más cool. Al inicio de este coñazo HowTo dije que suponía que teníamos instalada MySQL (u otra BD). Instalemos soporte para ruby para nuestra base de datos
$ sudo aptitude install libmysql-ruby1.8 # o el equivalente para nuestra BD!
$ irb
irb(main):001:0> require "mysql"
=> true
irb(main):002:0> exit
Creamos un par de bases de datos y por temas de seguridad también sería aconsejable crear un usuario con permisos más restrictivo, usaré "root" por simplificar este howto
$ sudo mysql -u root -p
mysql> create DATABASE rails;
mysql> create DATABASE rails_test;
mysql> quit
Ahora vamos a decir a Rails cual es nuestra base de datos, editamos ~/dev/rails/config/database.yml quedando algo como esto:
$ more config/database.yml
development:
adapter: mysql
database: rails
username: root
password: NUESTRAPASS
host: localhosttest:
adapter: mysql
database: rails_test
username: root
password: NUESTRAPASS
host: localhostproduction:
adapter: mysql
database: rails
username: root
password: NUESTRAPASS
host: localhost
Vale, todo perfecto. Ahora hagamos lo siguiente:
$ script/generate model Thing
$ vim db/migrate/001_create_things.rb
algo como esto (por ejemplo...):
class CreateThings < ActiveRecord::Migration
def self.up
create_table :things do |t|
t.column :nombre, :string
t.column :uso, :string
t.column :cantidad, :integer
end
enddef self.down
drop_table :things
end
end
$ rake db:migrate
$ script/generate scaffold Thing AdminDeCosas
$ script/server
Ahora entrando a http://localhost:3000/AdminDeCosas podremos añadir entradas de "cosas", verlas, editarlas y borrarlas. Curioso, eh?
Para próximos posibles post me apunto integrarlo con apache y profundizar más en las posibilidades de Rails. Para cualquier duda, crítica, opinión, insulto o desvario mental, los comentarios ;).
7 Comentarios »
RSS feed para los comentarios de esta entrada.
Dejar un comentario
Esta obra está bajo una
licencia de Creative Commons.
Este blog funciona gracias a WordPress
con el theme GimpStyle
diseñado por Horacio Bella y adaptado por un servidor.
Feed entradas
Definitivamente tienes que sacar la segunda parte de como integrarlo a apache, esta es la parte interesante.
Acabas de publicar el articulo, y desde wedoit4you.com ya tienes 18 visitas.
Mucho interes en Ruby.
Comentario por Gubatron — 16 Julio, 2006 @ 16:46 #
Igual me he enterado de algo jajaja, Ruben explicamelo jaja.
Comentario por manolito — 16 Julio, 2006 @ 20:02 #
ya no se si por trauma, por mi empanada mental de nivel 2 (TM)
o por qué, pero se me asemeja (aunque no tenga nada que ver) a PL/SQL
P.D: ultimamente cualquier cosa se me asemeja al PL xDDD
Comentario por txus — 17 Julio, 2006 @ 9:51 #
realmente tiene tanto de parecido a PL/SQL, así a ojo, como un rinoceronte a una golondrina, aproximadamente… xD.
Comentario por blax — 17 Julio, 2006 @ 14:50 #
si ya digo que por trauma o empanada mental (TM), ahora ya de nivel 3 (TM) …
P.D: veo rinocerontes que se parecen a golondrinas… o golondrinas que se parecen a rinocerontes xD
Comentario por txus — 17 Julio, 2006 @ 15:49 #
[...] Bueno, como dije en el anterior post, voy a explicar como integrar Rails con Apache, para que sea éste nuestro servidor Web. El servidor de Rails WEBrick (ejecutando script/server en el directorio de nuestra aplicación de Rails) cumple su función, sobre todo es útil para el desarrollo, pues muestra mucha información. Pero para un entorno real, no puede competir con un servidor web “de los de verdad” (estaría bien respaldar ésto con números, para otro día que me aburra…). Otra opción sería usar Rails con lighttpd, ésto lo he visto mucho por la red, y parece dar buenos resultados, pero como Apache es mucho Apache, prefiero usarlo . [...]
Pingback por Bicosyes - since evermore… » Blog Archive » HowTo: Integrando Rails con apache — 16 Noviembre, 2006 @ 0:43 #
[...] que molaba mogollón, que era la hostia, que viva la madre que lo parió, y esas cosas. Incluso el año pasado me dio por probarlo a ver si realmente merecía la pena. Después de probar algunas de sus [...]
Pingback por Bicosyes - since evermore… » Blog Archive » Ruby on Rails, ¿se acabó lo que se daba? — 29 Octubre, 2007 @ 6:06 #