ملف لتعديل استعلام SQL لإنشاء 'post'؟

مرحباً يا شباب، لإعطاء بعض الخلفية، أحاول إضافة عمود آخر إلى مخطط الجدول لجدول posts، أريد إضافة عمود آخر وهو meta_tag_id. لقد وصلت إلى نقطة يمكنني فيها تمرير البيانات التي أريد تخزينها في معلمات PostController، تحقق من السجل أدناه كمرجع (هذا من سجلات d/rails s):

Started POST "/posts" for 127.0.0.1 at 2022-09-16 06:08:19 +0000
Processing by PostsController#create as */*
  Parameters: {"raw"=>"Another dummy reply, for testing purposes.", "unlist_topic"=>"false", "category"=>"5", "topic_id"=>"23", "is_warning"=>"false", "archetype"=>"regular", "typing_duration_msecs"=>"4500", "composer_open_duration_msecs"=>"11534", "featured_link"=>"", "shared_draft"=>"false", "draft_key"=>"topic_23", "meta_tag_id"=>"summary", "nested_post"=>"true"}

الآن، ما أريد تحقيقه هو إدراج المعلمة meta_tag_id :point_up: في عمود آخر من جدول posts، كمرجع، إليك عينة من سجلات استعلام SQL عند إدراج سجل في جدول posts الخاص بي:

Post Create (1.1ms)  INSERT INTO "posts" ("user_id", "topic_id", "post_number", "raw", "cooked", "created_at", "updated_at", "sort_order", "last_editor_id", "last_version_at", "word_count", "baked_at", "baked_version") VALUES (1, 23, 7, 'Another dummy reply, for testing purposes.', '<p>Another dummy reply, for testing purposes.</p>', '2022-09-16 06:08:22.283658', '2022-09-16 06:08:22.283658', 7, 1, '2022-09-16 06:08:22.293786', 6, '2022-09-16 06:08:22.283601', 2) RETURNING "id"

سأكون ممتنًا لو أمكنكم توجيهي في الاتجاه الصحيح. أنا لست على دراية بلغة Ruby، لذلك أواجه صعوبة في العثور على ما يجب تعديله لتحقيق إضافة عمود جديد ودمج متغير meta_tag_id في قيم الاستعلام. شكراً جزيلاً لكم مقدماً يا شباب! :smile:

تعديل مثل هذه الجداول الرئيسية مباشرة قد يكون محفوفًا بالمخاطر، فكر بدلاً من ذلك في استخدام نموذج PostCustomField، فهو موجود لهذا الغرض تحديدًا: لإرفاق بيانات مخصصة خاصة بالمنشورات، عادةً في إضافة.

إذا كانت لديك مشكلات في الأداء، فربما يمكنك إعادة النظر، ولكن هذا حل أبسط وأكثر أمانًا بكثير.

4 إعجابات

شكرًا على الرد، حسنًا إذن سيتم تخزين meta_tag_id الخاص بي في جدول post_custom_field باستخدام فئة PostCustomField؟ ثم للوصول إلى البيانات المخزنة في تدفق المنشور، يجب عليّ أيضًا الحصول على بيانات جدول post_custom_field ودمج meta_tag_ids في المنشورات؟ هل أفهم حالة الاستخدام الصحيحة لفئة PostCustomField؟

انظر How to add custom fields to models

لا يوجد مثال للمنشورات ولكن توجد أمثلة للمواضيع والفئات وهي تعمل بنفس الطريقة.

إعجابَين (2)

فيما يلي أمثلة على استخدامها:

و

تأكد من أنك على دراية بمفاهيم نموذج Rails Active Record، لأنك عادةً ما ترغب في القيام بكل شيء عبر Ruby on Rails بدلاً من قاعدة البيانات مباشرة.

3 إعجابات

شكراً على الردود، سألقي نظرة على المراجع والأمثلة التي قدمتموها. أوه، أنا لست على دراية بمفهوم Active Model، أو في Ruby بشكل عام، بعد. هذا مفيد جداً، شكراً لكم مرة أخرى يا رفاق. :folded_hands:

إعجاب واحد (1)

إنها ليغو، لقواعد البيانات :brick:

إعجاب واحد (1)