Après avoir examiné cette question :
Comment afficher les champs d'un objet sur la console ?
J'ai un problème connexe. Je suis relativement novice en Ruby, donc j'espère que c'est aveuglant d'évidence. J'ai ce que je crois être un objet Ruby, généré à partir de la bibliothèque MIME::Types. Je cherche à obtenir un type de fichier simple pour un fichier particulier. Voici ce qui se passe dans irb :
>> require 'mime/types'
=> ["MIME"]
>> text = MIME::Types['text/plain; charset=us-ascii']
=> [#<MIME::Type:0x2483ee0 @simplified="text/plain", @obsolete=nil, @raw_media_type="text", @content_type="text/plain", @system=nil, @registered=true, @url=["RFC2046", "RFC3676"], @media_type="text", @encoding="quoted-printable", @sub_type="plain", @raw_sub_type="plain", @extensions=["txt", "asc", "c", "cc", "h", "hh", "cpp", "hpp", "dat", "hlp"]>, #<MIME::Type:0x2476024 @simplified="text/plain", @obsolete=nil, @raw_media_type="text", @content_type="text/plain", @system=/vms/, @registered=true, @url=nil, @media_type="text", @encoding="8bit", @sub_type="plain", @raw_sub_type="plain", @extensions=["doc"]>]
>> puts text.media_type
NoMethodError: undefined method `media_type' for #<Array:0x2483af8>
from (irb):4
D'après ce que j'ai compris, je devrais pouvoir accéder aux propriétés de cet objet en utilisant la syntaxe point -- en fait, la page sur laquelle j'ai appris cela ( http://mime-types.rubyforge.org/ ) affirme exactement cela ! Alors comment se fait-il que j'obtienne une erreur "no method" à la place ? J'ai essayé toutes sortes d'autres syntaxes, mais sans succès.
Merci d'avance, Aaron.