2012-10-15 113 views
1

我有一個應用程序,它具有使用Twitter作爲提供程序的Oauth訪問。我也有問登錄的用戶在未經許可的,我可以把微博作爲用戶喜歡的東西的能力,閱讀和他/她的賬戶,一旦用戶寫授權的應用程序:在軌控制檯如何使用twitter在Gems中進行多次計算?

u = User.find(id) 
u.twitter.update("Some-Status-Here") 

......我想要做的就是鳴叫作爲一個命令的所有用戶,但如果我嘗試類似:

u = User.all 
u.twitter.update("Some-Status-Here") 

我得到這個錯誤:

undefined method `twitter' for #<Array:0x00000002e2f188> 

我怎麼能作爲鳴叫一個通訊中的所有用戶和?我究竟做錯了什麼?我覺得這是一個非常基本的東西,我想念...有人可以幫助我嗎?

謝謝。

回答

2

User.all方法返回一個用戶數組,而不是一個用戶。如果你想對每個用戶調用一個方法,你需要循環它。

users = User.all 
users.each do |user| 
    user.twitter.update("Some status here") 
end 

也就是說,我不建議更新用戶的Twitter狀態,而不必首先向他們顯示消息並徵求他們的同意。

此外,有可能比上述更有效的方法來做到這一點,所以請注意性能和API命中限制。

+0

哦,謝謝你的回答! (現在我知道我需要用rubymonk.com再次刷新我的ruby知識XD),而且,對於這種方法你是對的,但這是針對主要用於我的一個簡單的「類似於機器人」的應用程序,所以我們的想法是自動-tweet在兩個帳戶我同時沒有確認:) – Jmlevick