1

Twitter を使用してすべてのメンションを抽出するアプリケーションを構築しています。メンションを送信したすべてのユーザーを保存するプロファイル モデルがあります。そのテーブルには、twitter API を介して取得した ID を格納する twitter_id フィールドと、同じ名前を持つ説明、画面名などの他のフィールドがあります。

  # 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

私はすでに多くのことを試しましたが、すべてがエラーになります... im a ruby​​ noob = 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 に答える