Файл для изменения 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 — она создана именно для таких целей: прикрепления специфических пользовательских данных к постам, обычно в рамках плагина.

Если у вас возникнут проблемы с производительностью, вы сможете вернуться к этому вопросу позже, но это гораздо более простое и безопасное решение.

Спасибо за ответ. Получается, что мой meta_tag_id будет сохраняться в таблице post_custom_field с помощью класса PostCustomField? Тогда для доступа к сохраненным данным в потоке постов мне также нужно получить данные из таблицы post_custom_field и включить meta_tag_ids в посты? Правильно ли я понимаю сценарий использования класса PostCustomField?

Смотрите How to add custom fields to models

Хотя примера для Posts нет, примеры для Topics и Categories работают аналогичным образом.

Вот примеры их использования:

и

Убедитесь, что вы знакомы с концепциями модели Rails Active Record, поскольку обычно вы захотите выполнять все действия через Ruby on Rails, а не напрямую в базе данных.

Спасибо за ответы, я изучу предоставленные вами ссылки и примеры. Ох, я пока не знаком с концепцией Active Model или Ruby в целом. Это очень полезно, ещё раз спасибо, ребята. :folded_hands:

Это Лего для баз данных :brick: