J'utilise un concept mais le modèle User est lié à une table héritée et il fonctionne parfaitement.Mise en place d'une association has_one
Maintenant, je veux mettre en œuvre la possibilité de réinitialiser les mots de passe, et cela impose d'avoir de nouveaux champs (reset_password_token
et reset_password_token_at
), que je ne peux pas créer sur la table d'origine. J'ai décidé d'utiliser le bon vieux delegate
avec une relation has_one
. Voici ce que je l'ai fait:
class User < LegacyDatabase
set_table_name 'T_CLIENTS'
devise :database_authenticatable, :authentication_keys => [:email]
devise :recoverable
has_one :user_setting
delegate :reset_password_token, :to => :user_setting
delegate :reset_password_sent_at, :to => :user_setting
# (...)
end
Mon problème est maintenant que je dois faire respecter que tous les utilisateurs auront un UserSetting créé quand j'ai besoin pour accéder aux nouveaux champs.
Si je le faisais à la main, je pourrais faire le UserSetting.find_or_create_by_user_id (...), mais avant d'aller dans cette direction, je voudrais savoir si les rails offrent un moyen d'y parvenir sans tomber code manuel.
toujours seul ... :) – kolrie