Je veux parcourir toutes les propriétés de mon modèle 'utilisateur', comment puis-je faire cela?Étant donné un modèle, comment parcourir toutes les propriétés?
Répondre
Si vous avez une instance de votre modèle puis user.attributes
est une table de hachage des attributs et leurs valeurs du modèle ainsi, par exemple, vous pouvez faire quelque chose comme:
user.attributes.each_pair do |name, value|
puts "#{name} = #{value}"
end
Si vous ne disposez pas d'un particulier instance alors la classe a des méthodes qui renvoient des informations sur les champs de la base de données, par exemple User.columns
et User.content_columns
. par exemple.
User.columns.each do |column|
puts column.name
end
Article.columns.each do |column|
puts column.name
end
Ce itère sur tous les objets de colonne pour le modèle de l'article.
@ model.methods renvoie les noms de toutes les méthodes de l'objet. @ Model.methods.grep (/ = $ /) vous renverra les noms de toutes les méthodes d'écriture, donc vous pouvez deviner que si vous avez un setter, alors vous avez aussi un lecteur, donc cela peut être un " propriété".
Vous pouvez également inspecter les attributs hash (@ model.attributes) qui est un Hash avec toutes les colonnes définies dans la base de données, et cela peut être le moyen le plus fiable, car la méthode "methods" peut ne pas inclure l'attribut lecteurs (et écrivains) générés dynamiquement. (Cela peut dépendre de la version de RubyOnRails que vous utilisez).
- 1. Comment parcourir toutes les propriétés d'une classe?
- 2. Comment créer un RouteValueDictionary étant donné un chemin virtuel
- 3. Étant donné un URI GIT, comment puis-je vérifier?
- 4. Étant donné un document, sélectionnez un extrait pertinent
- 5. Comment supprimer un élément du DOM, étant donné son identifiant?
- 6. C# - Comment parcourir les classes champs et définir les propriétés
- 7. Comment parcourir les propriétés d'un objet anonyme en C#?
- 8. Obtenir toutes les références IProject dépendantes pour un IProject donné
- 9. Comment puis-je voir toutes les propriétés d'un objet JS donné?
- 10. Comment parcourir les propriétés d'ID de la classe R.java?
- 11. jQuery: Étant donné un sélecteur, trouver uniquement ses éléments visibles
- 12. Rails: Sélection d'un enregistrement dans un objet, étant donné l'ID
- 13. Étant donné le modèle suivant, comment déterminer le rôle de l'utilisateur?
- 14. Étant donné un nombre, à quel intervalle appartient-il?
- 15. Étant donné un UTI (Uniform Type Identifier), trouver tous les types auxquels il se conforme
- 16. Étant donné l'exemple -When-Then avec NUnit
- 17. MVC 2 Validation générique. Valider toutes les propriétés du modèle ou des propriétés par type
- 18. rails, rubis - Étant donné un Regex - Déterminer le match Compte
- 19. Étant donné 35/4, je veux un "8" retourné
- 20. Étant donné le SID d'un utilisateur, comment obtenir son userPrincipalName?
- 21. Silverlight - Saisir toutes les informations de liaison des éléments dans un stree visuel donné?
- 22. Étant donné le lien ci-dessous comment glisser avec jQuery
- 23. Comment puis-je parcourir plusieurs propriétés dans jsp
- 24. Comment obtenir une liste de propriétés avec un attribut donné?
- 25. Comment faire pour migrer toutes les URL dans les propriétés svn: externals à travers un référentiel?
- 26. Comment notifier toutes les propriétés du modèle de vue a changé
- 27. Comment parcourir les nœuds pour un DevExpress.XtraTreeList.TreeList
- 28. GetLocalValueEnumerator() Ne pas retourner toutes les propriétés
- 29. Étant donné un type C#, obtenir ses classes de base et implémenter les interfaces
- 30. Étant donné un nom de propriété, comment puis-je créer un délégué pour obtenir sa valeur
Ceci est obsolète à partir des rails 4, quelle est la bonne solution maintenant? –
Lesquelles des méthodes mentionnées sont obsolètes? Ils semblent tous être dans les documents de l'API. – mikej
Cela a bien fonctionné pour moi sur Rails 4.2.2. Merci mikej. –