Comment exécuter du code côté serveur en cliquant sur un bouton ?

Comment puis-je faire quelque chose comme ça :
Lorsque je clique sur un bouton personnalisé, je veux exécuter du code côté serveur.

Par exemple, un clic de bouton, je veux exécuter le fichier Jobs/Secheduled/test_job.rb

Ou puis-je exécuter le code à l’intérieur de ce fichier lorsque quelqu’un visite l’URL admin/plugins/my-plugin.

Je suis débutant en développement de plugins Discourse, et j’ai vraiment du mal à faire quelque chose comme ça. Toute aide sera grandement appréciée.

Vous devrez alors effectuer une requête Ajax vers un point de terminaison qui exécute ce code.

Pouvez-vous en dire plus sur ce que vous voulez qu’il se passe côté serveur ?

Je veux exécuter le code à l’intérieur du fichier Jobs/Secheduled/test_job.rb

Ou vous pouvez dire que je veux exécuter un cron job.

Pouvez-vous me montrer un exemple de code sur la façon dont je peux faire une requête ajax vers un point de terminaison et exécuter le code à l’intérieur du fichier.

Vous décrivez toujours votre solution et non le problème que vous résolvez. Que voulez-vous faire dans ce fichier ? Il pourrait y avoir une meilleure façon de le déclencher. Savoir cela facilitera également la suggestion de quelque chose de similaire.

Le plugin d’abonnement ajoute un point de terminaison, vous pourriez donc examiner cela. Vous devrez ajouter une route dans Rails, puis dans Ember, ajouter une action à votre bouton qui l’appellera.

J’ai un utilisateur avec un nombre énorme de publications. Je veux supprimer toutes les publications de cet utilisateur, mais le bouton de suppression par défaut renvoie une erreur 503. J’ai donc écrit un code pour planifier une tâche cron qui s’exécute toutes les 2 minutes et supprime 100 publications à la fois.

Exécutez-le simplement dans la console Rails et n’écrivez pas de plugin.

3 « J'aime »

Utilisez les fonctionnalités du langage et faites comme le suggère @pfaffman. Écrire un hook frontal sur mesure pour y parvenir est sérieusement exagéré.

Voir : ActiveRecord::Batches

Je ne connais pas Rails. Pouvez-vous me montrer la commande pour supprimer les publications de cet utilisateur ?

1 « J'aime »

Vous pouvez essayer de rechercher PostDestroyer

Oui, vous l’êtes, mais il y a beaucoup d’utilisateurs comme ça sur le site. Et mon client n’est pas un technicien, comment le fera-t-il ? Je dois écrire un plugin car le client me le demande.

Et aussi, le problème peut survenir sur d’autres sites de forums. Nous devons vraiment examiner le problème que je rencontre. Nous pouvons apporter des améliorations à la fonctionnalité de suppression de publication par défaut dans une future mise à jour.

13 messages ont été fusionnées dans un sujet existant : Je reçois une erreur 502 en essayant de supprimer des sujets créés par un utilisateur spécifique