Посмотрев на этот вопрос:
Как вывести дамп полей объекта в консоль?
У меня есть связанная проблема. Я относительно новичок в Ruby, так что, надеюсь, это очевидно. У меня есть то, что я считаю объектом Ruby, сгенерированным из библиотеки MIME :: Types. Я ищу, чтобы получить простой тип файла для конкретного файла. Вот что происходит в 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
Насколько я понимаю, я должен иметь возможность доступа к свойствам этого объекта с использованием точечного синтаксиса - фактически, страница, на которой я это узнал (http://mime -types.rubyforge.org / ), точно сообщает тот! Так почему же я получаю ошибку «нет метода»? Я пробовал все виды других синтаксисов, но не повезло.
Заранее спасибо,
Аарон.