gpt4 book ai didi

ruby-on-rails - Ruby 对象成员访问 : How's that Done?

转载 作者:数据小太阳 更新时间:2023-10-29 08:21:50 27 4
gpt4 key购买 nike

看了这个问题:

How do I dump an object's fields to the console?

我有一个相关的问题。我是 Ruby 的新手,所以希望这非常明显。我有一个我认为是从 MIME::Types 库生成的 Ruby 对象。我正在寻找一个特定文件的简单文件类型。这是 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/) 学到的页面正是这样说明的!那么我怎么会得到一个“无方法”错误呢?我尝试了各种其他语法,但没有成功。

提前致谢,亚伦。

最佳答案

MIME::Types 返回一组 MIME::Type 对象。这些对象的响应与您预期的一样。

>> puts text[0].media_type
text
=> nil

Ruby 的 class 方法可用于诊断此类问题。

>> puts text.class
array
=> nil

您还可以使用methods 方法来获取对象响应的方法的完整列表。

关于ruby-on-rails - Ruby 对象成员访问 : How's that Done?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/423055/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com