Si très simplifié
pour Model colonnes < attributs < méthodes
pour enregistrement colonnes = attributs < méthodes
Model.columns <> Model.record.columns/attributs
colonne
Vérification de l'existence d'une colonne pour un modèle Foo.column_names.include? 'nom_de_la_colonne'
La colonne existe-t-elle pour l'enregistrement ? foo.has_attribute?('nom_de_la_colonne')
attribut
Vérification de l'existence d'un attribut pour un modèle Foo.attribute_method?(:nom_de_l_attribut)
L'attribut existe-t-il pour l'enregistrement ? foo.has_attribute?(:nom_de_l_attribut)
méthode
Vérification de l'existence d'une méthode pour une classe Foo.method_defined?(:nom_de_la_methode)
La méthode existe-t-elle pour l'instance ? foo.respond_to?(:nom_de_la_methode)