migration rails 2.0 2.2
TRANSCRIPT
Migration de Rail 2.0 a 2.2
Migration de Rail 2.0 a 2.2
Cyril Mougel
4 mars 2009
Migration de Rail 2.0 a 2.2
Context
1 Context
2 Blocage lie a Rails 2.1
3 Amelioration possible avec Rails 2.1
4 Blocage lie a Rails 2.2
5 Amelioration possible avec Rails 2.2
Migration de Rail 2.0 a 2.2
Context
Typo 5.1.3
supporte uniquement Rails 2.0.2
Pas d’evolution vers Rails 2.1
Couverture de code
Migration de Rail 2.0 a 2.2
Blocage lie a Rails 2.1
1 Context
2 Blocage lie a Rails 2.1
3 Amelioration possible avec Rails 2.1
4 Blocage lie a Rails 2.2
5 Amelioration possible avec Rails 2.2
Migration de Rail 2.0 a 2.2
Blocage lie a Rails 2.1
Mise a jour du projet
rake rails :update
Mise a jour des fichiers de boot
Mise a jour des fichiers de JS
Migration de Rail 2.0 a 2.2
Blocage lie a Rails 2.1
Plus de follow redirect dans les test de controlleur
Impossibilite d’utiliser follow redirect dans unTest :: ActionController
Utilisation uniquement dans les test d’integration
Inutile dans les test d’action
Migration de Rail 2.0 a 2.2
Blocage lie a Rails 2.1
Ce qui est deprecie ou supprime
render partial est supprime suite a sa deprecation sur Rails 2.0Utiliser render : partial
Migration de Rail 2.0 a 2.2
Amelioration possible avec Rails 2.1
1 Context
2 Blocage lie a Rails 2.1
3 Amelioration possible avec Rails 2.1
4 Blocage lie a Rails 2.2
5 Amelioration possible avec Rails 2.2
Migration de Rail 2.0 a 2.2
Amelioration possible avec Rails 2.1
Ajout des .last et .first
Plus besoin d’ecrire find( :first) ou find( :last)Maintenant User.first et User.last fonctionne.
User . f i n d ( : f i r s t )User . f i n d ( : l a s t )
=¿ User . f i r s tUser . l a s t
Migration de Rail 2.0 a 2.2
Amelioration possible avec Rails 2.1
named scope
named scope : p u b l i s h e d a r t i c l e s ,: c o n d i t i o n s => { : p u b l i s h e d => true } ,: o r d e r => ’ p u b l i s h e d a t DESC ’
named scope : w i t h c h a r , lambda { | ∗ a r g s |: c o n d i t i o n s => [ ’ name LIKE ? ’ ,
”%#{a r g s . f i r s t }%” ]}
Migration de Rail 2.0 a 2.2
Amelioration possible avec Rails 2.1
suivi des evolutions du model
article.changed ?
article.name changed ?
=¿ UPDATE body=’foo’ FROM contents where id=’12’
Migration de Rail 2.0 a 2.2
Blocage lie a Rails 2.2
1 Context
2 Blocage lie a Rails 2.1
3 Amelioration possible avec Rails 2.1
4 Blocage lie a Rails 2.2
5 Amelioration possible avec Rails 2.2
Migration de Rail 2.0 a 2.2
Blocage lie a Rails 2.2
relative url root en configuration de ActionController
Le helper link to utilise relative url root
Avant : utilisait @request.relative url root
Maintenant : On defini directement dans la configuration :ActionController : :Base.relative url root
Migration de Rail 2.0 a 2.2
Blocage lie a Rails 2.2
Migration dans des transactions
Si la migration echoue, pas de mise a jour de la BDD
raise Exception == Migration Failed, meme avec rescue
Eviter tous les cas de Raise.
Migration de Rail 2.0 a 2.2
Blocage lie a Rails 2.2
Chargement des classes de controller avec cache classe= true
en production cache classe = true
Chargement des classes en memoire
rake db :migrate RAILS ENV=’production’ charge classe
si appel ActiveRecord en cache du controller == FAILED
rescue it
Migration de Rail 2.0 a 2.2
Blocage lie a Rails 2.2
et des trivialites
fragment cache store remplacer par cache store
TextHelper : :truncate prend un seul argument avec :length enoption. La methode avec plusieurs argument DEPRECATED
Migration de Rail 2.0 a 2.2
Amelioration possible avec Rails 2.2
1 Context
2 Blocage lie a Rails 2.1
3 Amelioration possible avec Rails 2.1
4 Blocage lie a Rails 2.2
5 Amelioration possible avec Rails 2.2
Migration de Rail 2.0 a 2.2
Amelioration possible avec Rails 2.2
les conditions par Hash
A r t i c l e . a l l ( : c o n d i t i o n s => {: c r e a t e d a t => 5 . day . ago ,: t a g s => { : name => ’ foo ’ }})
Migration de Rail 2.0 a 2.2
Amelioration possible avec Rails 2.2
facilite de memoization
Utilisation simple de la memoization
def f i e l d s@ f i e l d s | |= [ ]
end
=¿
def f i e l d s@ f i e l d s = [ ]
endmemoize : f i e l d s
Migration de Rail 2.0 a 2.2
Amelioration possible avec Rails 2.2
Question ?