J'essaie de définir une constante dans un fichier d'initialisation et de l'utiliser dans un modèle.Utilisation de la constante dans le modèle
config/initializers/constants.rb
DEFAULT_EVENT_DURATION = 15
app/modèles/event.rb
class Event < ActiveRecord::Base before_validation :set_end_and_allday [...] def set_end_and_allday self.allDay ||= false self.end_event ||= self.start + DEFAULT_EVENT_DURATION.minute end end
Cependant, quand il essaie de créer un nouvel événement, il affiche l'erreur suivante dans les journaux:
NameError - uninitialized constant Event::DEFAULT_EVENT_DURATION
Est-ce que je fais quelque chose de mal?
J'ai fait quelques recherches sur google, mais je n'ai trouvé aucune solution (sauf définir la constante dans le modèle et non dans l'initialiseur ... et ce n'est pas ce que je veux faire).
Avez-vous veillé à redémarrer le serveur? Les initialiseurs ne sont exécutés que lorsque le serveur est chargé pour la première fois. –
Oui, en faisant un simple 'touch tmp/restart.txt' (j'utilise pow). –
Il dit qu'il cherche 'Event :: DEFAULT_EVENT_DURATION', essayez' :: DEFAULT_EVENT_DURATION' pour accéder à la constante à la racine. – rudolph9