访问对象的特定属性

Accessing specific attribute of an object

您好,我有以下对象

object =  [#<ShopifyAPI::DiscountCode:0x000000000e1c78a8 @attributes={"code"=>"Disc2", "amount"=>"1.00", "type"=>"percentage"}, @prefix_options={}, @persisted=true>]

如何正确访问该对象的 "code" 名称?

我已经尝试了 object[:code] 和 object.code 但似乎我忽略了一些东西。

首先对象是数组:

obj0 = object[0]

其次,这是实例变量:

attributes = obj0.instance_variable_get(:@attributes)

最后,按键取值:

attributes['code']

对象是ShopifyAPI::DiscountCode的数组。 最好的访问方式是

object[0].attributes['code']

如果您想要数组中所有可用对象的代码,您可以通过

获取值数组
object.map { |obj| obj.attributes['code'] }

鉴于这是 ShopifyAPI::DiscountCodeArray(继承自 ActiveResource::Base

您可以对它们调用 code 方法。例如:

object[0].code 
#=> "Disc2"
object.map(&:code) 
#=> ["Disc2"]