我正在构建一个使用twitter提取所有提及的应用程序,我有一个Profile模型,我希望保存所有发送提及的用户。在那张桌子上我有twitter_id字段,我想存储通过twitter API检索的id ..以及其他字段,如description,screen_name等具有相同名称。
# a.tc is a Twitter object already authenticated
tws = a.tc.mentions({:count => 200})
# foreach mention
tws.each do |t|
# Check if we already have it saved
p = Profile.find_by_twitter_id t.user.id
if p.nil?
# Profile doesnt exist, try to save it
p = Profile.new(t.user.to_hash) # ERROR!
p.twitter_id = t.user.id
p.save
end
我已经尝试过很多东西,但是所有东西都会出错......我是一个红宝石noob = P
答案 0 :(得分:2)
您需要删除ID或仅指定Profile
中可用的属性:
usr = t.user.to_hash
usr.delete :id # or "id", I'm not sure how the Hash looks like exactly
## delete all the other keys that are not neccessary
p = Profile.new usr
或以这种方式使用。这是更好的方法,因为您无法意外分配属性
p = Profile.new (:screen_name => t.user.screen_name, ... and so on... )