2013-10-11 97 views
1

過去幾天我一直在爲Youtube_It gem搞亂,因爲我試圖將它集成到我目前正在使用的Rails 4應用程序中。在Rails中使用YouTube_It gem的輸出時遇到的問題

當我運行一個搜索查詢時,它會輸出一個有很多結果的數組。只要我在Rails控制檯中,操作它就沒有問題。一個簡單的例子:

require 'youtube_it' 

client = YouTubeIt::Client.new(:dev_key => "dev_key") 

data = client.videos_by(:query => "penguin") 

data.videos.each { |v| puts v.unique_id } 

這將輸出一個從查詢返回的所有唯一標識符的很好,整齊的列表。

當我嘗試在視圖中做類似的事情(我知道它不應該在視圖中,它只是在這裏進行測試),它只是輸出一個看起來像XML的巨大混亂列表。這似乎只發生在我嘗試迭代使用.each時。

當我做這樣的事情:

<% data = client.videos_by(:query => "penguin") %> 

<%= data.videos[1].unique_id %> 

這將返回正是我所期待的,從我選擇了一個索引UNIQUE_ID。大!但是,我如何獲得所有唯一的ID?

這就是我卡住的地方,真的很感謝一些幫助!你實際上並沒有使用相同的代碼爲控制檯

1)::)

+0

它沒有任何意義,同樣的事情會從不同的地方渲染不同的東西。你確定如果你從視圖中使用相同的代碼(你在這裏沒有使用相同的代碼),你會得到不同的結果嗎? – sevenseacat

回答

1

OK,兩方面的原因(從要點的工作,你給我在IRC上,位於here)。您的控制檯使用puts unique_id這將打印唯一ID的值,但您只是使用unique_id這將獲得ID ...然後無所作爲。你想要的可能是類似於data.videos.map(&:unique_id)(或長格式的data.videos.map { |v| v.unique_id }),它會返回你一個ID的數組。 2)您正在使用<%=,這意味着'評估此紅寶石線並將返回值輸出到頁面上'。每條語句的返回值就是你每次調用的對象 - 即。 data.videos,這就是打印出來的東西。