Crontab -l / -e / -r ? Cronjobs

Pour infos :

  • crontab -l : liste les cron
  • crontab -e : édition des cron
  • crontab -r : supprime la table de cron

Comme je n’ai pas volé ma réputation de « jeune fougueux », j’ai tapé trop vite « crontab -e » afin de glisser gentiment sur « crontab -r »… Ce qui fait que j’ai vidé la table des crons 🙂

Pour remédier à ça, il suffit de créer un fichier qu’on chargera dans le crontab et qui nous évitera ce genre de petites erreurs. Pour créer ce fichier, rien de plus simple :

Dirige la sortie de la commande « crontab – l » dans le fichier « cronjobs », créé automatiquement si il n’existe pas.

Ensuite il suffit de mettre à jour le fichier « cronjobs » à notre guise puis de le recharger dans le crontab pour mettre à jour le crontab, en faisant

Voilà.

Fixtures into fixtures

Lors de tests, on peut être amenés à jouer avec les associations has_many, belongs_to & co.

Si vous travaillez avec des associations, vous pouvez simplement définir une référence entre deux fixtures différents. Voici un exemple avec une association belongs_to / has_many :

# Dans fixtures/categories.yml
a-propos:
  nom: About
# Dans fixtures/articles.yml
one:
  title: Coucou monde !
  contenu: Hello world !
  categorie: a-propos

La clé « one » trouvé dans fixtures / articles.yml a une clé-valeur categorie => « a-propos ». Ceci indique à Rails de charger la catégorie « a-propos » dans « categorie » de l’article concerné.

 

Sources : http://api.rubyonrails.org/v5.1.1/classes/ActiveRecord/FixtureSet.html

Rails 5 : Comment récupérer les erreurs de validate d’un model enfant dans le model parent

Le cas : Un model Utilisateur peut avoir 0+ model Enfant (définit par un has_many). Enfant a un validate_presence_of sur le prénom. On veut savoir dans le modèle parent Utilisateur quand il y a une erreur de validation dans le modèle enfant Enfant.

Pour ce faire, il faut rajouter un hook au validate du modèle parent :

En clair, on ajoute les errors.full_messages des enfants dans le errors[:enfants] d’un utilisateur

Ensuite, pour les récupérer en front par exemple, il suffit de :