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

> 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

Henrik Nyh a le même concept sous un nom différent (augmentations)
formalisé par un plugin :

http://github.com/henrik/augmentations/tree/master

   -- Jean-François.

-- 
http://twitter.com/underflow_

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
-~----------~----~----~----~------~----~------~--~---

Répondre à