2010-02-03 16 views
5

Soy un principiante en Rails. Yo uso 2.3.X.Rails 3: Anticipando la migración para principiantes 2.3

Acabo de ver que Rails 3 está publicado previamente [editar: ahora en versión candidata!]. Lo más probable es que eventualmente cambie a eso.

¿Cuáles son los hábitos de codificación comunes en 2.3 que no debería tomar, para que el cambio sea lo más suave posible?

Editar:

he hecho mi tarea y leer las notas de la versión. Pero están lejos de ser clara para los puntos más importantes, por ejemplo:

1.5 Las nuevas API

Tanto el router y la interfaz de consulta han visto significativa, rompiendo cambios. Hay una capa de compatibilidad con versiones anteriores que está en su lugar y será compatible hasta la versión 3.1.

Esto no es lo suficientemente amplio para un principiante como yo. ¿Qué se romperá? ¿Qué podría hacer en 2.3.X para evitar problemas más adelante?

+0

¿Usted echó un vistazo a las publicaciones de Jeremy McAnally como sugerí en mi respuesta? No creo que puedas obtener guías más completas para actualizar a Rails 3 en estos días. No solo te guía a través de todo el proceso, incluso escribió una gema para hacer la transición lo más indolora posible. –

+0

Entiendo, Milán, pero el tema no es cómo migrar, sino cómo codificar para no tener demasiados problemas durante la migración. Sin embargo, entiendo el valor de tu respuesta y del enlace que diste. Aprendí, por ejemplo, que debo mantener la ruta simple. Eso ya es una información valiosa. Si eso es todo lo que necesito saber, está bien. Pero tal vez hay otros puntos. – glmxndr

Respuesta

12

En cuanto a mis hábitos personales de codificación (he estado utilizando Rails desde 1.2.x), aquí hay una lista de cambios de API que puede anticipar según Rails 3 release notes.

find (: todos)

evitar el uso de:

Model.find(:all) 
Model.find(:first) 
Model.find(:last) 

a favor de:

Model.all 
Model.first 
Model.last 

consultas complejas

Evitar la composición de comp consultas lex a favor de ámbitos con nombre.

Anticipar Arel

Rails 3 ofrece un enfoque mucho más limpio para hacer frente a las condiciones y opciones de ActiveRecord. Puede anticiparlo creando ámbitos personalizados con nombre.

class Model 
    named_scope :limit, lambda { |value| { :limit => value }} 
end 

# old way 
records = Model.all(:limit => 3) 

# new way 
records = Model.limit(3).all 

# you can also take advantage of lazy evaluation 
records = Model.limit(3) 
# then in your view 
records.each { ... } 

Al actualizar a Rails 3, simplemente descarte la definición del alcance con nombre.

Constantes

evitar el uso de las siguientes constantes en favor de los Rails.x métodos correspondientes, ya disponible en rieles 2.x.

  • RAILS_ROOT a favor de Rails.root,
  • RAILS_ENV a favor de Rails.env y
  • RAILS_DEFAULT_LOGGER a favor de Rails.logger.

discreto Javascript

Evitar helpers de JavaScript pesados ​​en favor de JavaScript discreta.

dependencias Gem

Mantenga su environment.rb tan limpio como sea posible con el fin de hacer más fácil la migración a Bündler. También puede anticipar la migración using Bundler today sin Rails 3.

+0

Muy buena respuesta. +1 – glmxndr

0

Yo diría que lea el rails release notes y vea por usted mismo lo que le parece más sorprendente. Muchas cosas cambiaron así que leer esto es definitivamente muy importante.

3

Lo más importante a tener en cuenta es el release notes. Aparte de eso, Jeremy McAnally tiene un buen blog posts sobre todo el asunto de Rails 3 (y acaba de lanzar un gem para ayudarte con la migración).