Как выполнить код на стороне сервера при нажатии кнопки?

Как мне сделать следующее:

Когда я нажимаю на пользовательскую кнопку, я хочу выполнить код на стороне сервера.

Например, при нажатии одной кнопки я хочу запустить файл Jobs/Secheduled/test_job.rb.

Или могу ли я выполнить код из этого файла, когда кто-то посещает URL admin/plugins/my-plugin?

Я новичок в разработке плагинов для Discourse и очень затрудняюсь с чем-то подобным. Любая помощь будет очень признательна.

Тогда вам потребуется сделать Ajax-запрос к конечной точке, которая выполнит этот код.

Можете ли вы рассказать подробнее, что именно должно происходить на стороне сервера?

Я хочу выполнить код из файла Jobs/Secheduled/test_job.rb

Или, можно сказать, я хочу запустить cron-задачу.

Не могли бы вы показать пример кода, как сделать AJAX-запрос к конечной точке и выполнить код внутри файла?

Вы всё ещё описываете своё решение, а не проблему, которую пытаетесь решить. Что вы хотите сделать в этом файле? Возможно, есть более подходящий способ это сделать. Знание этого также поможет предложить похожее решение.

Плагин подписки добавляет endpoint, так что вы можете посмотреть на него. Вам нужно добавить маршрут в Rails, а затем в Ember добавить действие к вашей кнопке, которое будет вызывать этот endpoint.

У меня есть пользователь с огромным количеством постов. Я хочу удалить все его посты, но стандартная кнопка «Удалить все посты» возвращает ошибку 503. Поэтому я написал код, который запускает cron-задачу каждые 2 минуты и удаляет по 100 постов за раз.

Просто выполните это в консоли Rails и не пишите плагин.

Используйте возможности языка и следуйте совету от @pfaffman. Написание собственного хука фронтенда для достижения этого — это серьёзное переусердствование.

Смотрите: ActiveRecord::Batches

Я не знаком с Rails. Можешь показать мне команду для удаления постов этого пользователя?

Вы можете попробовать поискать PostDestroyer

Да, вы правы, но на сайте много таких пользователей. А мой клиент — не технический специалист, как он узнает об этом? Мне нужно написать плагин, так как клиент настаивает на этом.

Кроме того, такая проблема может возникнуть и на других форумах. Нам действительно нужно разобраться с проблемой, с которой я столкнулся. В будущем обновлении мы можем улучшить функцию удаления сообщений по умолчанию.