File per modificare la query SQL per creare 'post'?

Ciao ragazzi, per fornire un po’ di contesto, sto cercando di aggiungere un’altra colonna allo schema della tabella posts, voglio aggiungere un’altra colonna che è meta_tag_id. Sono arrivato a un punto in cui posso passare i dati che voglio memorizzare nei parametri di PostController, controlla il log qui sotto per riferimento (questo è dai log di 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"}

Ora, quello che voglio ottenere è inserire il parametro meta_tag_id :point_up: in un’altra colonna della tabella posts, per riferimento, ecco un esempio di log della query SQL quando si inserisce un record nella mia tabella 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"

Sarei grato se poteste indicarmi la giusta direzione. Non ho familiarità con Ruby, quindi sto avendo difficoltà a trovare il punto che dovrei modificare per ottenere l’aggiunta di una nuova colonna e incorporare la variabile meta_tag_id ai valori della query. Grazie in anticipo ragazzi! :smile:

Modificare direttamente una tabella chiave in questo modo è probabilmente rischioso, considera invece di usare il modello PostCustomField, esiste esattamente per questo tipo di scopo: allegare dati personalizzati su misura ai Post, di solito in un plugin.

Se hai problemi di prestazioni, forse puoi rivedere, ma questa è una soluzione molto più semplice e sicura.

4 Mi Piace

Grazie per la risposta, quindi il mio meta_tag_id verrà archiviato nella tabella post_custom_field utilizzando la classe PostCustomField? Quindi, per accedere ai dati archiviati nello stream dei post, dovrei recuperare anche i dati della tabella post_custom_field e incorporare i meta_tag_ids nei post? Sto interpretando correttamente il caso d’uso della classe PostCustomField?

Vedi How to add custom fields to models

Non c’è un esempio per i Post ma ci sono esempi per Topics e Categories e funzionano allo stesso modo.

2 Mi Piace

Ecco esempi del loro utilizzo:

e

Assicurati di avere familiarità con i concetti di Rails Active Record Model, perché normalmente vorresti fare tutto tramite Ruby on Rails piuttosto che direttamente sul database.

3 Mi Piace

Grazie per le risposte, esaminerò i riferimenti e gli esempi che mi avete fornito. Oh, non ho ancora familiarità con il concetto di active model, né con Ruby in generale. Questo è molto utile, grazie ancora ragazzi. :folded_hands:

1 Mi Piace

È Lego, per i database :brick:

1 Mi Piace