# Utilizzo di HasCustomFields in un plugin

**URL:** <https://meta.discourse.org/t/using-hascustomfields-in-a-plugin/176469>\
**Category:** Development\
**Created:** [18 Gennaio 2021, 5:50pm UTC](https://meta.discourse.org/t/using-hascustomfields-in-a-plugin/176469 "2021-01-18T17:50:53Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [18 Gennaio 2021, 5:50pm UTC](https://meta.discourse.org/t/using-hascustomfields-in-a-plugin/176469/1 "2021-01-18T17:50:53Z")

</div>

Ho un modello in un plugin. Il modello è `Pfaffmananger::Server`, la tabella è `pfaffmanager_servers`. Per motivi specifici, voglio avere campi personalizzati per questo modello (mi aspetto che ci siano casi in cui vorrò estendere i dati del server che saranno probabilmente utilizzati solo per alcune istanze e non voglio un numero enorme di campi per lo più inutilizzati nel modello).

Ecco la migrazione che crea la tabella:

```ruby
class CreatePfaffmanagerServerCustomField < ActiveRecord::Migration[6.0]
  def change
    create_table :pfaffmanager_server_custom_fields do |t|
      t.integer :server_id, null: false
      t.string :name, limit: 256, null: false
      t.text :value
      t.timestamps null: false
    end
    add_index :pfaffmanager_server_custom_fields, [:server_id, :name]
  end
end

```

Se uso `pfaffmanager_server_id` invece di `server_id`, la migrazione fallisce perché non riesce a trovare `server_id`, ma quando uso `pfaffmanager_server_id` come nome del campo, dopo aver creato un campo personalizzato, quando provo a salvare un server ottengo:

```ruby
  Pfaffmanager::ServerCustomField Load (0.4ms) SELECT "pfaffmanager_server_custom_fields".* FROM "pfaffmanager_server_custom_fields" WHERE "pfaffmanager_server_custom_fields"."server_id" = 1
   (0.2ms) ROLLBACK
PG::UndefinedColumn: ERROR: column "pfaffmanager_server_id" of relation "pfaffmanager_server_custom_fields" does not exist
LINE 1: INSERT INTO pfaffmanager_server_custom_fields (pfaffmanager_...
    

```

Quindi, se la migrazione ha il campo `pfaffmanager_server_id`, la migrazione fallisce, e se il nome del campo è `server_id`, il salvataggio fallisce.

Sto esaminando `save_custom_fields` in `concerns/has_custom_fields.rb`, ma non riesco proprio a capire se esiste un modo per sovrascriverlo.

C’è qualcosa che posso fare oltre a rifattorizzare tutto per usare `server` invece di `pfaffmanager_server`?

---

_[View the full topic](https://meta.discourse.org/t/using-hascustomfields-in-a-plugin/176469)._
