So legt man benutzerdefinierte Felder für Kategorien fest?

Ich möchte die import_id einer Kategorie manuell setzen, um die verbleibenden Themen aus einem alten Forum importieren zu können.

Ich habe dies in rails c versucht, aber es scheint nicht zu funktionieren:

[11] pry(main)> Category.find(3).custom_fields
=> {}
[12] pry(main)> Category.find(3).custom_fields['import_id'] = '50'
=> "50"
[13] pry(main)> Category.find(3).custom_fields
=> {}

Ich denke, du musst so etwas wie

 CategoryCustomField.create(category_id: 3,...)

machen.

Schau dir im Code der Importeure ein Beispiel an.

Ja, habe es endlich gefunden.

    new_category.custom_fields["import_id"] = import_id if import_id
    new_category.save!

Also scheint es, als müsste ich nur save aufrufen :slight_smile:

Ich war verwirrt, weil es bei SiteSetting nicht erforderlich ist.

[14] pry(main)> c = Category.find(3)
=> #<Category:0x000056548fd948a8
 id: 3,
...
[15] pry(main)> c.custom_fields['import_id'] = '50'
=> "50"
[16] pry(main)> c.custom_fields
=> {"import_id"=>"50"}
[17] pry(main)> c.save!
=> true
[18] pry(main)> Category.find(3).custom_fields
=> {"import_id"=>"50"}