這很容易。下面是你需要什麼:
itemsarray = { 'items' => [ { 'product_id' => 1, 'brand_id' => 1, 'color_id' => 1 } ] }
現在的解釋一點點......
在Ruby中表示,我們使用哈希關聯數組。例如:{ 'a' => 1, 'b' => 2 }
== array('a' => 1, 'b' => 2)
。
所以在頂層有一個包含關鍵items
哈希,它的價值是所有項目的數組。第一個項目再次是散列,將產品選項作爲關鍵字與相應的值。
什麼是好一點的方式來寫這個是用符號代替字符串鍵,因爲這將引入一個輕微的內存優化。下面是一個例子:
itemsarray = { :items => [ { :product_id => 1, :brand_id => 1, :color_id => 1 } ] }
還有一個速記語法,其中:abc => 1
相當於:abc: 1
,因此上述線將如下所示:
itemsarray = { items: [ { product_id: 1, brand_id: 1, color_id: 1 } ] }
UPDATE
對於多個物品,這裏是它會是什麼樣子:
itemsarray = { items: [
{ product_id: 1, brand_id: 1, color_id: 1 },
{ product_id: 2, brand_id: 3, color_id: 5 }
]}
或動態的方法:
itemsarray[:items].push({ product_id: 2, brand_id: 3, color_id: 5 })
很好的解釋,我知道這一點,但是,我希望能夠添加多個「項目」。我改變了這個問題來反映這一點。 – Jason
啊,問題是句法。我錯誤地使用了關閉數組括號。這裏遲到了。 ;) – Jason
@Jason更新的答案,以反映問題 –