jueves, 23 de julio de 2009

Actualizar a Rails 2.3

He tenido que actualizar algunas aplicaciones de Rails 1.1.6 a la version 2.3.

La forma más rápida y menos dolorosa, para que funcione todo, aunque no sea una aplicación REST y uses ajax_scaffold, es la siguiente:

instalar rails 2.3:
gem install rails -v=2.3.2 --source=http://gems.rubyonrails.org

renombrar application.rb por application_controller.rb
mv application.rb application_controller.rb

reemplazar el environment.rb por uno nuevo de la rails 2.3
reemplazar el boot.rb por uno nuevo de la rails 2.3

tendrás que reinstalar algunos plugins, e instalar algunos nuevos como classic_pagination para mantener la paginación original, y render_component:

ruby script/plugin install git://github.com/masterkain/classic_pagination.git
ruby script/plugin install git://github.com/lackac/render_component.git -r rails-edge



en las vistas, sustituir todos los:
<%= form_tag ... %>
...
<%= end_form_tag %>

por:
<% form_tag ... do %>
...
<% end %>

lo mismo para los <%= form_remote_tag ... %>


sustituir en vistas y controladores las variables @params y @flash por params y flash

sustituir todas las llamadas a Inflector por ActiveSupport::Inflector

actualizar a la versión nueva de prototype

si tenias mensajes de error de activerecord traducidos en config/initializers/active_record_error_messages.rb, tendrás que hacer lo siguiente:

rm config/active_record_error_messages.rb
vi config/i18n.rb

este fichero contiene:

I18n.load_path += Dir[ File.join(RAILS_ROOT, 'config', 'locales', '*.{yml}') ]
I18n.default_locale = "es" # default language

y en config/locales crear es.yml:

"es":
activerecord:
errors:
templates:
header:
one: "Error: el objeto {{model}} no se ha podido guardar"
other: "{{count}} no se permite guardar {{model}}"
body: "Ha habido problemas con los siguientes campos:"
messages:
accepted: "debe ser aceptado"
blank: "no puede estar en blanco"
confirmation: "no coincide con la confirmación"
...

No hay comentarios:

Publicar un comentario