Forum: Rails France Ranger ses modèles

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
B935c7953e0d4c30b82fdee575163e6a?d=identicon&s=25 Pierre Valade (Guest)
on 2009-02-03 15:51
(Received via mailing list)
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
Be1e3ee645d23c95ba650c21bc885927?d=identicon&s=25 Fabien Jakimowicz (Guest)
on 2009-02-03 15:56
(Received via mailing list)
On Tue, Feb 3, 2009 at 15:50, Pierre Valade <pierre.valade@gmail.com>
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
7add1eff4adafe6012b2e719dbf2bdc7?d=identicon&s=25 Arthur Pétry (Guest)
on 2009-02-03 16:17
(Received via mailing list)
Le 3 févr. 09 à 15:50, Pierre Valade 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/bd2...
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/bd2...
class User < ActiveRecord::Base
   concerned_with :states, :activation, :posting, :validation
end
A99870c1391c39da2089649745965bda?d=identicon&s=25 Jean-François Trân (Guest)
on 2009-02-03 16:27
(Received via mailing list)
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/bd2...
> 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_
B935c7953e0d4c30b82fdee575163e6a?d=identicon&s=25 Pierre Valade (Guest)
on 2009-02-08 11:46
(Received via mailing list)
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 <jftran@rubyfrance.org>
This topic is locked and can not be replied to.