viernes, 18 de marzo de 2011

Instalar jQuery and jQuery UI en Rails 3

Bajamos jQuery UI. Viene en un zip. Extraemos el contenido del directorio js a ~/public/javascripts de nuestra aplicación.

Necesitaremos también los CSS del zip que están localizados en /css/[nombre_del_tema] del zip y los copiamos en ~/public/stylesheets. Finalmente copiamos el contenido de las imagenes en el directorio ~/public/images.

Por lo visto hay que editar el css y reemplazar donde aparece 'mages/' por '/images/'.

Una vez hecho esto hay que indicarle a rails que los use, para ello editamos application.html.erb en ~/views/layouts y le añadimos la siguiente linea dentro de la etiqueta head:

<%= stylesheet_link_tag :all, 'jquery-ui-1.8.custom' %>
<%= javascript_include_tag 'jquery-1.4.2.min', 'jquery-ui-1.8.custom.min', 'rails' %>
<%= csrf_meta_tag %>
Ya solo me falta que esto ande en Refinery-CMS Refinery-Core 0.9.9.4

Fuente y enlaces: eddorre gem rails3-jquery-autocomplete * jquery-ujs rails-jquery-autocomplete-tutorial

domingo, 13 de marzo de 2011

Repasando: Partials

Render genera una vista a partir de una plantilla, cuando ejecutamos una acción de un controlador, sino se le indica que plantilla tiene que mostrar como vista (si no se le pasan parámetros), busca por defecto una con el mismo nombre.

Los partial son pequeñas plantillas que se pueden insertar en otras vistas, esta plantilla puede aparecer en varias vistas, asi ahorramos tener que escribirla varias veces. El nombre de estas vistas parciales comienzan con un guión bajo. Un ejemplo de partial:

# _book.erb.html
<%= book.title %>, <%= book.author %>

Con solo invocarlo desde otra planatilla (vista) es suficiente. Un ejemplo de llamada:

<%= render :partial => "book" %> #fallaria, el partial usa una variable que no es global


Estos partials pueden necesitas variables. Se puede pasarle un objeto

render(:partial => "book", :object => @my_book)#el partial usa una var. que se llama como el


Si existe @book, podemos omitir el pará́metro :object

render(:partial => "book")


Tambien se pueden pasar valores adicionales, que estarán disponibles como variables locales

render(:partial => "book",:locals => { :owner => "Hermenegildo" })


Enlace API Rails, Banot.net

sábado, 5 de marzo de 2011

Aplicación Refinerycms en Heroku con SQLite


#0. Prerrequisitos
# http://devcenter.heroku.com/articles/quickstart#prerequisites
# instalar git y crear un clave ssh [MaCaCoDer]
# crear una cuenta en Heroku
# instalar y configuras RVM
# http://rvm.beginrescueend.com/
# instalamos SQLite database Browser por ejemplo

#1. instalamos en rvm la versión 1.9.2

rvm install ruby-1.9.2-p180

#2. cambiamos a este ruby

rvm 1.9.2

#3. creamos el gemset de la aplicación

rvm gemset create gemset_my_app

#4. nos movemos al nuevo gemset

rvm gemset use gemset_my_app

#5. instalamos rails, no se si refiney te lo instala sino lo tienes en el gemset

gem install rails -v=3.0.3

# me ha instalado la versión 3.0.5 ¿?

#6. instalamos refinerycms y lo que haga falta para heroku
# http://refinerycms.com/guides/how-to-install-refinery-on-heroku

gem install refinerycms -v=0.9.9.4
gem install heroku -v=1.18.2

#7. Configuracion de la gema de Heroku

heroku list
heroku help # ayuda

#8. creamos nuestra aplicación refinery para heroku
# esto te crea la aplicación (como rails)
# instala bundler, ejecuta bundle install
# instala mas gemas como aws-s3 para poner fotos en amazone
# http://amedrodriguez.com/blog/2010/09/configurando-amazon-s3-en-rails/
# crea la BBDD SQLite y te migra
# te inicia git, te hace un comit y un push a heroku

refinerycms myapp --heroku

#9. [OPCIONAL] creamos cuenta en amazone web service http://aws.amazon.com/es/
# email: un_correo@dominio.dom
# pass: mycalve#####
# luego habrá que configurar la aplicación para su uso

#10. Como no quiero trabajar con la cuenta que me acabo de crear para el proyecto
# entramos en Heroku y añado como colaborador otra cuenta que tengo.
# Pasos para bajarse el proyecto.
# http://devcenter.heroku.com/articles/sharing

heroku info --app myapp # que sera en la que colaboro
heroku login # me logo
heroku keys:add # añado mi clave publica ssh (hay que crearla antes)

# bajamos el repositorio

git clone git@heroku.com:septimodia.git -o production

# ahora trabajamos con git:

git commit -a -m "log of the changes I made"
git push production master
-----> Heroku receiving push
-----> Launching.... done

#11. [OPCIONAL:ME PETA]
# No se si es que ya tenia el repositorio, o porque había renombrado la app *
# pero se ve esto:

git push production master
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git@heroku.com:myapp.git'

! No such app as empty-journey-445

fatal: The remote end hung up unexpectedly

# http://getsatisfaction.com/railstutorial/topics/problem_pushing_to_heroku
# edito .git/config del directorio de mi aplicacion "myapp"

[remote "production"]
fetch = +refs/heads/*:refs/remotes/production/*
url = git@heroku.com:myapp.git # edito esta linea

# repito el commit y el push, parece que funciona

#12. migramos en producción.

heroku rake db:migrate

# voy a ver si funciona la aplicación

http://myapp.heroku.com/ # funciona!!