2016-07-18 10 views
0

Ich versuche, mit dem Shopify-API-Juwel auf die Shopify-API zuzugreifen. Insbesondere versuche ich, auf den Preis eines Artikels zuzugreifen, der in einem Array enthalten ist.Ruby-Array-Attribute

product = ShopifyAPI::Product.find(id) 
variant = product.variants 

variant hier ist ein Array, und wenn ich puts variant.inspect tun, bekomme ich

[ 
    #<ShopifyAPI::Variant:0x000000041c9e50 @attributes={ 
    "id"=>23923477191, 
    "title"=>"Default Title", 
    "price"=>"6.00", 
    "sku"=>"shirts", 
    "position"=>1, 
    "grams"=>0, 
    "inventory_policy"=>"deny", 
    "compare_at_price"=>nil, 
    "fulfillment_service"=>"manual", 
    "inventory_management"=>"shopify", 
    "option1"=>"Default Title", 
    "option2"=>nil, 
    "option3"=>nil, 
    "created_at"=>"2016-06-30T14:06:07-04:00", 
    "updated_at"=>"2016-07-16T19:00:07-04:00", 
    "taxable"=>true, 
    "barcode"=>"", 
    "image_id"=>nil, 
    "inventory_quantity"=>1, 
    "weight"=>0.0, 
    "weight_unit"=>"kg", 
    "old_inventory_quantity"=>1, 
    "requires_shipping"=>true 
    }, @prefix_options={:product_id=>7509869767}, @persisted=true> 
] 

Wie greife ich/ändern 'Preis' unter ‚@ attributes`?

Antwort

0

Attribute sind, was Ruby Objekteigenschaften nennt. Greifen Sie einfach darauf zu, wie Sie es in den meisten anderen Sprachen tun würden.

Holen Sie sich das Element des Arrays Sie (in diesem Beispiel 0) wollen und dann das Attribut Preis zugreifen

variant[0].price

0

Verwendung:

variant.first["price"]

Die variant Array besteht aus 3 Elementen ; Das @ attributes-Element ist das erste. Dieses @attributes Element ist eine Hash-Map und Sie suchen nach dem Wert unter Schlüssel "price".