J'utilise Active Admin avec Ruby on Rails et j'ai un problème avec la façon dont certains modèles sont affichés dans le panneau. En prenant la classe User
comme exemple, si je ne définis aucune méthode pour l'afficher amical, je vois #<User:00000006b47868>
. So Active Admin suggère d'implémenter une méthode pour spécifier, pour chaque classe, comment l'afficher.Rails + Active Admin: Nom d'affichage
Selon la documentation (http://activeadmin.info/docs/3-index-pages/index-as-table.html), Admin actif cherche une de ces méthodes pour deviner ce que pour afficher, dans l'ordre suivant:
:display_name, :full_name, :name, :username, :login, :title, :email, :to_s
donc avoir cette méthode dans la classe User
résoudrait le problème:
Cependant, avant d'utiliser l'administrateur actif, j'utilisais déjà la méthode display_name
avec d'autres fins (par exemple, en v iews) afin de montrer le nom d'utilisateur d'une manière amicale, et je ne veux pas montrer la même chose dans le panneau Active Admin.
Je ne peux pas changer le nom de la méthode parce que j'utilise display_name
dans beaucoup de fichiers le long du projet, et le changer introduirait probablement des bogues dans l'application.
Une solution idéale pour ce cas serait d'avoir quelque chose comme une méthode active_admin_name
utilisée par Active Admin pour afficher les modèles dans son panneau. Donc la question est:
Est-il possible d'avoir une méthode qui est appelée par Active Admin au lieu de display_name
? Par exemple, pour résultat dans l'ordre suivant:
:active_admin_name, :display_name, :full_name, :name, :username, :login, :title, :email, :to_s
J'ai cherché dans la documentation active d'administration et config/initializers/active_admin.rb
, mais je ne pouvais pas trouver un moyen de le faire.
Merci!
Je pense que je n'ai pas ce fichier dans mon projet. J'ai essayé de le créer et de mettre ce code là, mais ça n'a pas marché. J'ai aussi essayé de mettre ce code dans 'config/initializers/active_admin.rb', mais pas de bons résultats non plus. J'ai trouvé que dans le code source Active Admin il y a un code comme le vôtre: https://github.com/gregbell/active_admin/blob/master/lib/active_admin/application.rb Peut-être que nous devons le mettre dans un autre fichier? –
Cela fonctionne pour mon projet qui utilise AA 0.6.0. J'ai défini 'config.display_name_methods = [: admin_display_name, ....]' dans 'config/initializers/active_admin.rb'. Assurez-vous de redémarrer votre application. – baxang