الحصول على بيانات صندوق النص بعد الضغط على الزر في الإضافة

يبدو أن ما تبحث عنه هو إنشاء واجهة برمجة تطبيقات (API) في Ruby يمكن لـ JS استدعاؤها. أحد الأمثلة هو المكون الإضافي Data Explorer، الذي ينفذ واجهة برمجة تطبيقات لإدخال المستخدم بنطاق إذن المسؤول على جانب Ruby.

تعد JavaScript الخاصة بـ Data Explorer جزءًا أكبر من الأمور، لذا سأقدم مثالًا مبسطًا لما قد تحتاجه.

import { ajax } from "discourse/lib/ajax";

...
  @action
  sendTextboxData() {
    ajax("/endpoint", {
        type: "POST",
        data: {
          key: "value"
        },
    }).then((result) => {
        // قم بشيء ما بالنتيجة
    };
  }

يمكنك القيام بنفس الشيء باستخدام fetch() الأصلية لـ JavaScript، ولكن يبدو أن الدالة ajax() التي توفرها Discourse تتعامل مع بعض الأشياء الصغيرة في الخلفية.

إذا كان كود Ruby الخاص بك خفيفًا بما يكفي، فيمكنك وضعه بالكامل ضمن ملف واحد لوحدة التحكم. وإلا، يمكنك تنظيمه بالطريقة التي تحتاجها.