2013-06-01 127 views
1

我不能插入使用導軌MongoDB中的數據,如果數據類型是陣列型插入陣列數據

的下面是代碼

def friend 

Twitter.configure do |config| 
config.consumer_key = 'GpCZ3ppx2tvOYB7mP4FONw' 
config.consumer_secret = 'ectbzaP2oLPTSMGJaR5Fj6mmdgFyVsWeM9HoZ2iwaI' 
config.oauth_token ='1378905500-TMtwUpl4bVpVDAcZQ29SVONITmFLL1aCzSLHDQQ' 
config.oauth_token_secret = 'SIsfYHqSKfTEUD4dutaI7zYbfJQjxXmiNXiv4vWkfY' 
end 
@frend= Twitter.friends("shamshul2007") 
@frend.each do |hell| 
puts hell.name.inspect.to_s 
end 

#===== 
fr=Array.new 
@frend.each do |f| 

fr.push(f) 
end 


#data insertion 

@fri=Friend.new 
@fri.username="shamshul2007" 
@fri.friend=fr 
@fri.save 
end 

模型是friend.rb

class Friend 
include Mongoid::Document 
field :username, type: String 
field :friend, type: Array 
end 

我有以下錯誤,同時將數據推送到MongoDB的

undefined method `__bson_dump__' for #<Twitter::User:0x007fbbec1a8538> 

回答

0

我修正了這個問題,代碼如下,我沒有采用twitter提供的字段的子數組名稱。

Twitter.configure do |config| 
config.consumer_key = 's9J0L2Br1rutBCH3wBmnA' 
config.consumer_secret = 'SNbrKPLRPOq8AAVXzUnwWv9OodO0iHMkYSXNa786qFs' 
config.oauth_token ='1378905500-Xs9xbqSyzhtVCVUKYko1Zq1NXSz2ViHXCs0g4KA' 
config.oauth_token_secret = 's9RAGElHJLIYNhTv0bwChBU4PcUHq2W9cQeWMSYt8' 
end 
@frend= Twitter.friends("shamshul2007") 
fr=Array.new 
@frend.each do |f| 
fr.push(f.name) 
end 


#data insertion 
puts "start saving" 
@fri=Friend.new 
@fri.username="shamshul2007" 
@fri.friend=fr 
@fri.save 
puts "data saved" 
end 
0

這段代碼是幹什麼的?

a) @frend.each do |f| 
    b) @fri.friend=f 
    c) end 

@fri.friend should be provided an array type value. 

In above code snippet 

    1) if "f" is an array?? --- line b) 
    2) if "f" is an array then it is being overwritten each time the loop rotates. --- line b) 

So check these things and should help you.. 
+0

我更新了我以前的帖子中的代碼,並提及錯誤also.I試圖提取特定用戶的Twitter朋友和保存到mongodb數組類型字段,即朋友在模型friend.rb – shamshul2007