Como executar código do lado do servidor ao clicar em um botão?

Como posso fazer algo como,
Quando clico em um botão personalizado, quero executar algum código do lado do servidor.

Por exemplo, ao clicar em um botão, quero executar o arquivo Jobs/Secheduled/test_job.rb

Ou, posso executar o código dentro deste arquivo quando alguém visita a URL admin/plugins/my-plugin.

Sou iniciante no desenvolvimento de plugins do Discourse e estou tendo muita dificuldade em fazer algo assim. Qualquer ajuda será muito apreciada.

Então você precisará fazer uma solicitação Ajax para um endpoint que execute esse código.

Você pode dizer mais sobre o que deseja que aconteça no lado do servidor?

Quero executar o código dentro do arquivo Jobs/Secheduled/test_job.rb

Ou, pode-se dizer, quero executar um cron job.

Você pode me mostrar um exemplo de código de como fazer uma requisição ajax para um endpoint e executar o código dentro do arquivo?

Você ainda está descrevendo sua solução e não o problema que está resolvendo. O que você quer fazer nesse arquivo? Pode haver uma maneira melhor de acioná-lo. Saber disso também facilitará a sugestão de algo semelhante.

O plugin de assinatura adiciona um endpoint, então você pode dar uma olhada nisso. Você precisará adicionar uma rota no Rails e, em seguida, no Ember, adicionar uma ação ao seu botão que o chamará.

Tenho um usuário com um número enorme de posts. Quero excluir todos os posts desse usuário, mas o botão padrão de exclusão de todos os posts está retornando um erro 503. Por isso, escrevi um código para agendar um cron job para rodar a cada 2 minutos e excluir 100 posts por vez.

Apenas execute no console do Rails e não escreva um plugin.

3 curtidas

Use os recursos de linguagem e faça como o @pfaffman sugere. Escrever um hook de front-end personalizado para conseguir isso é exagerado.

Veja: ActiveRecord::Batches

Não estou familiarizado com o Rails. Você pode me mostrar o comando para excluir posts para esse usuário?

1 curtida

Você pode tentar pesquisar por PostDestroyer

Sim, você está, mas há muitos usuários assim no site. E meu cliente é uma pessoa não técnica, como ele fará isso. Preciso escrever um plugin, pois o cliente está me instruindo.

E também o problema pode surgir em outros sites de fóruns. Precisamos realmente dar uma olhada no problema que estou enfrentando. Podemos fazer melhorias no recurso de exclusão de postagens padrão em futuras atualizações.

13 posts foram mesclados em um tópico existente: Estou recebendo erro 502 ao tentar excluir tópicos criados por um usuário específico