Bonjour à tous,
Je me pose une question et j’aimerais avoir votre avis.
On arrive souvent avec des gros gros models sous Rails, genre des
user.rb qui sont interminables.
Est-ce que vous avez des best pratices à recommander pour gérer ça ?
Merci beaucoup pour vos retours !
Pierre
On Tue, Feb 3, 2009 at 15:50, Pierre V. [email protected]
wrote:
Bonjour à tous,
Je me pose une question et j’aimerais avoir votre avis.
On arrive souvent avec des gros gros models sous Rails, genre des
user.rb qui sont interminables.
Est-ce que vous avez des best pratices à recommander pour gérer ça ?
J’utilise des modules que j’écris dans le répertoire ‘lib’ et que je
sépare en blocs de fonctionnalités.
Une fois ces modules écris, j’inclus/extend mes modèles avec. Ce qui
me permet d’avoir des fonctionnalités partagées entre les modèles,
sans pour autant dupliquer le code. Sans parler de la ré-utilisation
dans d’autres projets
–
http://fabien.jakimowicz.com
Le 3 févr. 09 à 15:50, Pierre V. a écrit :
On arrive souvent avec des gros gros models sous Rails, genre des
user.rb qui sont interminables.
Est-ce que vous avez des best pratices à recommander pour gérer ça ?
Salut Pierre,
J’aime bien l’approche trouvée dans altered_beast du “concern_with” :
cf.
http://github.com/courtenay/altered_beast/blob/bd2322c7877d3f51daf9ea7320a25a0219896305/config/initializers/concerns.rb
class << ActiveRecord::Base
def concerned_with(*concerns)
concerns.each do |concern|
require_dependency “#{name.underscore}/#{concern}”
end
end
end
et dans le model user :
http://github.com/courtenay/altered_beast/blob/bd2322c7877d3f51daf9ea7320a25a0219896305/app/models/user.rb
class User < ActiveRecord::Base
concerned_with :states, :activation, :posting, :validation
end
Le 3 février 2009 16:16, Arthur a écrit :
On arrive souvent avec des gros gros models sous Rails, genre des
user.rb qui sont interminables.
Est-ce que vous avez des best pratices à recommander pour gérer ça ?
J’aime bien l’approche trouvée dans altered_beast du “concern_with” :
Oui, c’est ce que DHH appelle des “concerns”, qu’il met dans
app/concerns
Techno-weenie a repris l’idée d’une manière un peu différente,
illustré comme l’indique Arthur, et comme le décrit Lifo :
http://m.onkey.org/2008/9/15/active-record-tips-and-tricks
http://github.com/courtenay/altered_beast/blob/bd2322c7877d3f51daf9ea7320a25a0219896305/app/models/user.rb
class User < ActiveRecord::Base
concerned_with :states, :activation, :posting, :validation
end
Henrik N. a le même concept sous un nom différent (augmentations)
formalisé par un plugin :
– Jean-François.
–
http://twitter.com/underflow_
Bonjour,
Merci beaucoup à tous ceux qui m’ont répondu. C’était très gentil et les
solutions sont super.
Bon dimanche (et désolé de ne pas avoir répondu avant).
Merci
Pierre
2009/2/3 Jean-François Trân [email protected]