J'ai une structure d'héritage de table unique dans mon application, par laquelle Admins et Mods étendent une classe User. Le tableau utilise une valeur discriminante de sorte que chaque enregistrement a un type de soit « admin » ou « mod »Obtention d'un datamapper pour ignorer 'type' lors de l'interrogation de la base de données
Quand il s'agit de trouver un utilisateur (sur login) Je voudrais écrire:
current_user = User.find(params[:email => email])
Cependant, cela crée SQL qui comprend
SELECT ...... WHERE ("type" IN ('User') AND .....
cela signifie que le dossier ne peut pas être trouvé. Cependant, si je tape
current_user = Admin.find(params[:email => email])
Je reçois l'utilisateur (s'il s'agit d'un administrateur).
J'ai aussi essayé ce qui suit sans succès depuis le « type » IN (« User ») est toujours créé:
current_user = User.first(:email => email, :type => [Admin, Mod])
Merci d'avance pour toute aide sur ce
Peur pas. Le sql qui en résulte ressemble à: SELECT ..... FROM "utilisateurs" WHERE ("type" IN ('Utilisateur') ET "type" IN ('Admin', 'Mod') ET "email" =. ...... – Ger