Moin
Décembre 12, 2025, 9:57
1
Je sais qu’il y a un paramètre dans mes préférences d’interface, mais il ne fonctionne pas pour moi :
Il indique « changements enregistrés » mais la valeur dans la base de données est toujours « true », donc après un rechargement, il s’affiche à nouveau comme activé.
1 « J'aime »
pfaffman
(Jay Pfaffman)
Décembre 12, 2025, 11:53
3
Étrange. Avez-vous essayé de le voir dans Rails ?
Moin
Décembre 12, 2025, 11:59
4
Comment puis-je faire cela ? Meta n’est pas mon forum
1 « J'aime »
Je suis hésitant à utiliser modifyClass mais je n’ai pas réussi à trouver une meilleure façon (cc @david / @cvx )
main ← fix-save-ai-search-discovery-user-preference
opened 01:09PM - 12 Dec 25 UTC
The "Enable AI search discoveries" checkbox in user preferences wasn't persistin… g changes. The UI showed "saved" but the value never reached the database.
The Interface controller's `saveAttrNames` is a computed property that returns a new array on each access. While the plugin called `addSaveableUserOptionField()`, this only registers the field with the User model. The controller filters which fields to save via `saveAttrNames`, and since `ai_search_discoveries` wasn't in that list, it was excluded from the save request.
Fix by using `modifyClass` to extend the controller's `save()` action, pushing `ai_search_discoveries` to `saveAttrNames` at the moment of saving before calling the parent method.
Ref - meta/t/391135
1 « J'aime »
david
(David Taylor)
Décembre 12, 2025, 1:10
6
En effet, modifyClass n’est pas idéal, surtout dans un plugin de base.
La meilleure chose serait d’introduire un nouveau valueTransformer dans le cœur, afin que nous ayons une manière « supportée » de faire ce genre de choses.
3 « J'aime »
Que pensez-vous de ceci ?
main ← fix-save-ai-search-discovery-user-preference
Previously, plugins needed to use `modifyClass` to extend the
`saveAttrNames` li… st in preference controllers. This approach is
not ideal as it overrides controller methods and can be fragile.
This commit introduces a `preferences-save-attributes` value
transformer that provides a supported way for plugins to add
custom fields to any preference page's save list.
The transformer passes a `page` context parameter so plugins can
target specific preference pages:
```javascript
api.registerValueTransformer(
"preferences-save-attributes",
({ value: attrs, context }) => {
if (context.page === "interface") {
attrs.push("my_custom_field");
}
return attrs;
}
);
Available pages: account, emails, interface, navigation-menu,
notifications, profile, tags, tracking, users.
3 « J'aime »
Moin
Décembre 12, 2025, 11:48
8
Merci. C’est finalement désactivé