1

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

我已经尝试了很多东西,但一切都会出错......我是一个红宝石菜鸟=P

4

1 回答 1

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... )
于 2012-04-04T12:48:23.593 回答