2011-06-05 52 views
0

我使用batchbook ruby​​ gem來構建一個簡單的列表頁面,從我的batchbook crm中拉出各個字段。如果我拉一個給定公司的所有屬性,我結束了這樣的事情:如何從Batchbook CRM中的SuperTags中的自定義字段獲取信息

{"id"=>13, "name"=>"John Deer", "notes"=>nil, "small_image"=>nil, "large_image"=>nil, "tags"=>[#<BatchBook::Tag:0x00000001df6438 @attributes={"id"=>"1002", "name"=>"portfolio", "supertag"=>"true", "fields"=>#<BatchBook::Tag::Fields:0x00000001dee5a8 @attributes={"logo"=>"img/fr-logo-button-sm.png", "description"=>"We make tractors."}, @prefix_options={}>}, @prefix_options={}>], "locations"=>[#<BatchBook::Location:0x00000001dea048 @attributes={"id"=>14, "label"=>"main", "primary"=>true, "email"=>"***@johndeer.com", "website"=>"http://johndeer.com", "phone"=>nil, "cell"=>nil, "fax"=>nil, "street_1"=>nil, "street_2"=>nil, "city"=>nil, "state"=>nil, "postal_code"=>nil, "country"=>nil}, @prefix_options={}>], "mega_comments"=>[], "created_at"=>"Thu Jun 02 22:32:16 UTC 2011", "updated_at"=>"Thu Jun 02 22:40:03 UTC 2011"} 

如何可以解析這個從我的「投資組合」中拉只是「標誌」或只是「說明」 SuperTag的?

也許是簡單的使用只是@company.supertag對象,這給了我這樣的:

[{"id"=>15, "name"=>"portfolio", "fields"=>{"logo"=>"img/fr-logo-button-sm.png", "description"=>"We make tractors."}}] 

但同樣,我怎麼能拉出各個字段「標誌」或「說明」?

我覺得這應該是一個簡單的過程,也許我要麼在語法上掙扎,要麼使得它比需要的更加複雜,但是您能否幫我解決問題?

+0

第一個字符串從batchboo調用屬性方法對我公司來了對象k寶石。看起來我很困惑,試圖按照正確的順序混合散列和數組。謝謝您的幫助! – Fla2122 2011-06-06 20:33:32

+0

不是我所知道的。我所做的只是將公司對象存儲爲@company,然後將其稱爲@ company.attributes,試圖查看所有可用的東西。 (看起來像我必須做出2個獨立的http請求來獲取我的超級標籤信息,以及如何設置batchbook的API) – Fla2122 2011-06-08 19:34:04

回答

0

我不知道你的第一哈希像字符串是怎麼一回事,所以我們將看看@company.supertag產值:

[ 
    { 
     "id"  => 15, 
     "name" => "portfolio", 
     "fields" => { 
      "logo"  => "img/fr-logo-button-sm.png", 
      "description" => "We make tractors." 
     } 
    } 
] 

我把它重新格式化爲可讀的自由。外部方括號表示它是Array,大括號進入下一級,因此Array包含Hash。無論Array和Hash使用[]來訪問他們的元素,因此,如果整個數據結構是在a,我們記住一個Array在0索引開始,我們開始與此:

a[0]['fields'] 

這給了我們這個內哈希:

"fields" => { 
    "logo"  => "img/fr-logo-button-sm.png", 
    "description" => "We make tractors." 
} 

而且把它一步:

logo = a[0]['fields']['logo'] 
desc = a[0]['fields']['description'] 
相關問題