Archivo para modificar la consulta SQL para crear 'post'?

Hola chicos, para darles un poco de contexto, estoy intentando agregar otra columna al esquema de la tabla posts, quiero agregar otra columna que es meta_tag_id. Llegué a un punto en el que puedo pasar los datos que quiero almacenar en los parámetros de PostController, consulta el registro a continuación como referencia (esto es de los registros de 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"}

Ahora, lo que quiero lograr es insertar el parámetro meta_tag_id :point_up: en otra columna de la tabla posts, como referencia, aquí hay un registro de muestra de la consulta SQL al insertar un registro en mi tabla 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"

Estaría muy agradecido si pudieran indicarme la dirección correcta. No estoy familiarizado con ruby, así que me está costando trabajo encontrar lo que debo modificar para lograr agregar una nueva columna e incorporar la variable meta_tag_id a los valores de la consulta. ¡Gracias de antemano, chicos! :smile:

Modificar directamente una tabla clave como esa es probablemente arriesgado, considera en su lugar usar el modelo PostCustomField, existe precisamente para este tipo de propósito: adjuntar datos personalizados específicos a las Publicaciones, generalmente en un plugin.

Si tienes problemas de rendimiento, quizás puedas reconsiderarlo, pero esta es una solución mucho más simple y segura.

4 Me gusta

Gracias por la respuesta, entonces mi meta_tag_id se almacenará en la tabla post_custom_field usando la clase PostCustomField. Luego, para acceder a los datos almacenados en el flujo de publicaciones, ¿debería obtener también los datos de la tabla post_custom_field e incorporar los meta_tag_ids a las publicaciones? ¿Estoy entendiendo correctamente el caso de uso de la clase PostCustomField?

Ver How to add custom fields to models

No hay ningún ejemplo para Posts, pero hay ejemplos para Topics y Categories y funcionan de la misma manera.

2 Me gusta

Aquí hay ejemplos de su uso:

y

Asegúrate de estar familiarizado con los conceptos de Rails Active Record Model, porque normalmente querrías hacer todo a través de Ruby on Rails en lugar de directamente en la base de datos.

3 Me gusta

Gracias por las respuestas, miraré las referencias y los ejemplos que me han dado. Oh, todavía no estoy familiarizado con el concepto de active model, ni con Ruby en general. Esto es muy útil, ¡gracias de nuevo, chicos! :folded_hands:

1 me gusta

Es Lego, para bases de datos :brick:

1 me gusta