J’ai défini un nouveau champ personnalisé pour l’utilisateur :
User.find_each do |user|
user.custom_fields['foo'] = 0
user.save_custom_fields
end
Cela fonctionne - maintenant chaque utilisateur a 8 champs personnalisés :
[18] pry(main)> User.find(1).custom_fields
=> {
"patreon_id" => "83297319",
"last_chat_channel_id" => 32,
"last_digest_special_post" => "275200",
"last_digest_favorite_post" => "279347",
"example_field" => "new value",
"ai_bot_query_count" => "0",
"ai_bot_query_date" => "2025-01-12",
"foo" => "0"
}
Data Explorer voit le nouveau champ :
SELECT * from user_custom_fields
WHERE name LIKE '%foo%'
LIMIT 10
Maintenant, je veux utiliser le champ foo en javascript. J’ai ajouté du code à /admin/customize/themes/3/common/head_tag/edit. Mais seulement 2 des 8 apparaissent :
api.getCurrentUser().custom_fields
{
last_chat_channel_id: 32,
ai_bot_query_count: '0'
}
Qu’est-ce qui me manque ?
Moin
Janvier 12, 2025, 2:51
2
Avez-vous ajouté vos champs utilisateur au paramètre du site champs personnalisés utilisateur publics ?
Ce guide explique comment exposer les données des champs personnalisés utilisateur via l’API sans les afficher sur une carte utilisateur.
Niveau utilisateur requis : Administrateur
Ce guide vous guidera à travers le processus de mise à disposition des données des champs personnalisés utilisateur via l’API sans les afficher sur une carte utilisateur. Cela peut être utile lorsque vous avez besoin d’accéder par programme aux données utilisateur personnalisées to…
Merci, ça a fonctionné.
Une autre question : ces champs utilisateur personnalisés sont-ils une chose différente ? :
Ce guide explique comment créer et configurer des champs utilisateur personnalisés dans Discourse, y compris comment les ajouter au formulaire d’inscription, aux profils utilisateur et à l’annuaire des utilisateurs.
Niveau d’utilisateur requis : Administrateur
Les champs utilisateur personnalisés vous permettent de collecter des informations supplémentaires auprès de vos utilisateurs, au-delà des champs de profil standard. Ces champs peuvent être affichés sur…