Arquivo para modificar a consulta SQL para criar 'post'?

Olá pessoal, para dar um pouco de contexto, estou tentando adicionar outra coluna ao esquema da tabela posts, quero adicionar outra coluna que é meta_tag_id. Cheguei a um ponto em que consigo passar os dados que quero armazenar nos parâmetros do PostController, veja o log abaixo para referência (isso é dos logs 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"}

Agora, o que quero alcançar é inserir o parâmetro meta_tag_id :point_up: em outra coluna da tabela posts, para referência, aqui está um exemplo de logs da consulta SQL ao inserir um registro em minha tabela 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"

Eu ficaria grato se vocês pudessem me apontar na direção certa. Não sou familiarizado com Ruby, então estou tendo dificuldades em encontrar o que devo modificar para conseguir adicionar uma nova coluna e incorporar a variável meta_tag_id aos valores da consulta. Obrigado antecipadamente, pessoal! :smile:

Modificar uma tabela tão importante diretamente provavelmente é arriscado, considere usar o modelo PostCustomField em vez disso, ele existe exatamente para esse tipo de propósito: anexar dados personalizados específicos a Posts, geralmente em um plugin.

Se você tiver problemas de desempenho, talvez possa reconsiderar, mas esta é uma solução muito mais simples e segura.

4 curtidas

Obrigado pela resposta, ok, então meu meta_tag_id será armazenado na tabela post_custom_field usando a classe PostCustomField? Então, para acessar os dados armazenados no fluxo de posts, devo obter os dados da tabela post_custom_field também e incorporar os meta_tag_ids aos posts? Estou entendendo o caso de uso correto da classe PostCustomField?

Veja How to add custom fields to models

Não há exemplo para Posts, mas há exemplos para Tópicos e Categorias e eles funcionam da mesma maneira.

2 curtidas

Aqui estão exemplos de seu uso:

e

Certifique-se de que você está familiarizado com os conceitos do Rails Active Record Model, porque normalmente você vai querer fazer tudo através do Ruby on Rails em vez de diretamente no banco de dados.

3 curtidas

Obrigado pelas respostas, vou analisar as referências e exemplos que vocês deram. Ah, eu ainda não estou familiarizado com o conceito de active model, ou com ruby em geral. Isso é muito útil, obrigado novamente, pessoal. :folded_hands:

1 curtida

É Lego, para bancos de dados :brick:

1 curtida