Tu peux aussi regarder pour faire des acts_as_something pour tes modèles. Ça te donnerais beaucoup de souplesse. Lors de la création d'un nouvelle application tu as juste à créer un nouveau modèle et de rajouter une ligne de code.
Je ne sais pas si c'est la solution idéal mais c'est une option. Le 6 février 2013 11:08, Olivier El Mekki <[email protected]> a écrit : > Si tu tiens à tout avoir dans une seule dépendence, rien ne t'empêche de > mettre dans le lib/ de ta gem/engine ce que j'aurais mis dans la > gem/vanilla. > > Le problème du app/models/ de l'engine est qu'il fonctionne par override, > et non par namespace : si tu as un app/models/user.rb dans ton engine et > un app/models/user.rb dans ton app, la version de l'engine sera ignorée. > Ce n'est pas fait pour cela, c'est le rôle du lib/ d'une gem classique. > > On 07:55 Wed 06 Feb , Codii wrote: > > Je ne comprends pas tout dans ta réponse, Thierry, mais pour préciser > > simplement : J'ai commencé un projet rails dans lequel j'avais mes > modèles > > et controleurs définis de façon classique dans l'application utilisant > > Devise. > > J'ai voulu ensuite réutiliser ces modèles et controleurs dans une autre > > application (qui n'utiliserait pas Devise), d'où l'engine. > > De ce que j'ai compris de la réponse d'Olivier, je devrais simplement > créer > > une gem qui contiendrait les modèles Mongoid et controleurs et l'ajouter > à > > mon engine, qui serait à son tour inclus dans mes applications hôtes ? > Mais > > là, vous me perdez complètement ! > > Est-ce la seule façon de régler le problème ? N'y a-t'il pas plus simple > ? > > > > Merci ! > > > > Le mercredi 6 février 2013 16:04:45 UTC+1, thierry.henrio a écrit : > > > > > > Salut > > > > > > 2013/2/6 Codii <[email protected] <javascript:>> > > > > > > > > >> 1. Les modèles qui sont définis dans mon engine devraient pouvoir être > > >> "augmentés" pour les besoins des applications hôtes. > > >> Concrètement : > > >> > > >> - Je définis dans mon engine un modèle User ou Engine::User dans > mon > > >> application hôte. Mon app hôte utilise Devise. Donc je voudrais > pouvoir > > >> greffer devise au modèle User de mon engine. Comment faire > proprement ? > > >> > > >> 2. Je voudrais accéder aux modèles définis par mon engine dans le > > >> namespace global, Engine::User au lieu de User. > > >> > > > > > > IHMO, c'est pas une bonne idée > > > > > > 1- c'est pas dans le bon sens : prévoir des libs, des engines avant > > > d'avoir un machin qui marche > > > fais le marcher et extraie une lib, un engine > > > ( ca n'a rien à voir avec rails ou java ) > > > > > > 2- pas top les namespaces pour les modèles dans rails > > > J'ai essayé une fois avec un User pour devise il me semble, et je me > suis > > > pris un gros fail en rails 3 > > > > > > 2c, Thierry > > > > > > > > > > -- > > -- > > 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] > > --- > > Vous recevez ce message, car vous êtes abonné au groupe Google > Groupes Railsfrance. > > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le > concernant, envoyez un e-mail à l'adresse > [email protected]. > > Pour plus d'options, visitez le site > https://groups.google.com/groups/opt_out . > > > > > > > -- > Olivier El Mekki. > > -- > -- > 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] > --- > Vous recevez ce message, car vous êtes abonné au groupe Google > Groupes Railsfrance. > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le > concernant, envoyez un e-mail à l'adresse > [email protected]. > Pour plus d'options, visitez le site > https://groups.google.com/groups/opt_out . > > > -- -- 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] --- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Railsfrance. Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .
