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:
renombrar application.rb por 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:
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"
...
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
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"
...