Selon la doc :
http://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-i-table_name

Je penses que ton truc devrait fonctionner. Peux-tu essayer la secondes
solution comme ceci :

class Mouse < ActiveRecord::Base
  self.table_name = "mice"
end

Le 7 mars 2013 09:10, Nicolas Blanco <[email protected]> a écrit :

> Hey !
>
> Je passais juste par là pour mettre mon grain de sel. Bon, amuse toi à
> faire tes trucs de changement de table dynamique et on se reparle dans
> 1 mois. Tu me diras alors si c'était une bonne idée ou pas (hihi).
>
> @+.
>
> Nicolas.
>
> 2013/3/7 oto iashvili <[email protected]>:
> > rails 3.2.10
> >
> >
> > mais je vois pas de diffence entre ton code et le mien :
> >
> >
> >   def self.table_name
> >     debugger
> >     'franceusers'
> >   end
> >
> >
> > et
> >
> >  def self.table_name
> >     "special_" + super
> >   end
> >
> > hormis le "super", mais ca ne devrait rien changer, 'franceusers' dans
> mon
> > ca est juste pour tester.
> >
> > Le jeudi 7 mars 2013 14:56:42 UTC+1, Guirec Corbel a écrit :
> >>
> >> La différence peut être la version de Rails que tu utilise. Laquelle
> >> est-ce?
> >>
> >> (Sérieusement, parle en à ton boss. C'est une bonne pratique de faire ça
> >> comme ça.)
> >>
> >> Le 7 mars 2013 08:53, oto iashvili <[email protected]> a écrit :
> >>
> >>> la methode table_name_prefix existe est fonctionne tres bien pour mes
> >>> autres classes
> >>> http://apidock.com/rails/ActiveRecord/Base/table_name_prefix/class
> >>>
> >>> Le jeudi 7 mars 2013 14:47:37 UTC+1, pierre nespo a écrit :
> >>>>
> >>>> La méthode `table_name_prefix` n’existe pas, il n'y a donc aucune
> raison
> >>>> pour qu'elle soit appelée. cf:
> >>>>
> https://github.com/rails/rails/blob/3-2-13/activerecord/lib/active_record/model_schema.rb
> >>>>
> >>>> De plus changer le nom de la table "dynamiquement" dans le model n'est
> >>>> pas une bonne idée car tu agis sur la Classe User et pas sur
> l'Instance
> >>>> User, donc même si cela semble fonctionner en développement, tu
> risques
> >>>> d'avoir des surprises une fois en production (car les classes sont
> mises en
> >>>> cache).
> >>>>
> >>>> Pierre
> >>>>
> >>>>
> >>>> 2013/3/7 Guirec Corbel <[email protected]>
> >>>>>
> >>>>> Pourrais-tu préciser pourquoi c'est impossible?
> >>>>>
> >>>>> Le 7 mars 2013 08:32, oto iashvili <[email protected]> a écrit
> :
> >>>>>
> >>>>>> impossible dans mon cas. Vraiment besoin de separer les tables. Et
> ca
> >>>>>> fonctionne tres bien pour mes autres tables (post, image, ...) ,
> seul la
> >>>>>> table user pose pb!
> >>>>>>
> >>>>>> Le jeudi 7 mars 2013 14:27:07 UTC+1, Guirec Corbel a écrit :
> >>>>>>>
> >>>>>>> Je suis tout à fait d'accord avec Thibeaut. Tu peux utiliser des
> >>>>>>> scopes pour segmenter tes utilisateurs par pays.
> >>>>>>>
> >>>>>>> Le 7 mars 2013 08:23, Thibaut Barrère <[email protected]> a
> écrit
> >>>>>>> :
> >>>>>>>>
> >>>>>>>> Bonjour,
> >>>>>>>>
> >>>>>>>> mon conseil: regroupe les deux tables en une seule si tu peux
> >>>>>>>> (vraiment), avec une colonne pour identifier le pays etc. Sur la
> durée ça
> >>>>>>>> sera plus simple, si tu peux le faire.
> >>>>>>>>
> >>>>>>>> Thibaut
> >>>>>>>> --
> >>>>>>>> http://www.logeek.fr
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> 2013/3/7 oto iashvili <[email protected]>
> >>>>>>>>>
> >>>>>>>>> Bonjour,
> >>>>>>>>> pour mon appli, j'ai plusieurs tables utilisateurs (franceusers,
> >>>>>>>>> belgiqueusers, ...), et j'aimerais utilisé l'une ou l'autre en
> fonction du
> >>>>>>>>> domaine.
> >>>>>>>>> J'ai essayé avec table_name_prefix et table_name, mais ca ne
> semble
> >>>>>>>>> pas fonctionner
> >>>>>>>>>
> >>>>>>>>> class User < ActiveRecord::Base
> >>>>>>>>>   rolify
> >>>>>>>>>   # Include default devise modules. Others available are:
> >>>>>>>>>   # :token_authenticatable, :confirmable,
> >>>>>>>>>   # :lockable, :timeoutable and :omniauthable
> >>>>>>>>>   devise :database_authenticatable, :registerable, #:confirmable,
> >>>>>>>>>          :recoverable, :rememberable, :trackable, :validatable
> >>>>>>>>>
> >>>>>>>>>   def self.table_name
> >>>>>>>>>     debugger
> >>>>>>>>>     'franceusers'
> >>>>>>>>>   end
> >>>>>>>>>
> >>>>>>>>>   def self.table_name_prefix
> >>>>>>>>>     debugger
> >>>>>>>>>     'france'
> >>>>>>>>>   end
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> grace a debugger, j'ai pu voir que self.table_name est bien
> appelé,
> >>>>>>>>> mais pas self.table_name_prefix. Et meme si self.table_name,
> devise va
> >>>>>>>>> chercher les utilisateurs dans la table users et non franceusers
> >>>>>>>>>
> >>>>>>>>> pourtant
> >>>>>>>>> User.table_name renvoie bien "franceusers" et
> >>>>>>>>> User.table_name_prefix renvoie bien "france"
> >>>>>>>>>
> >>>>>>>>> ya a til qqch de spécial a faire pour que cela marche ?
> >>>>>>>>>
> >>>>>>>>> merci
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>> --
> >>>>>>>>> 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 .
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>> --
> >>>>>> --
> >>>>>> 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 .
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>> --
> >>> --
> >>> 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 .
> >
> >
>
>
>
> --
> Nicolas Blanco, Web developper
>
> http://www.nicolasblanco.fr
> Jabber/GoogleTalk : [email protected]
> Twitter : http://twitter.com/slainer68
> Github : http://github.com/slainer68
> Skype : slainer68
>
> --
> --
> 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 .


Répondre à