Twitter Gem和Rails发布了保存用户

时间:2012-04-04 12:45:08

标签: ruby-on-rails ruby twitter

我正在构建一个使用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

1 个答案:

答案 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... )