1

Twitter をプロバイダーとして使用して Oauth アクセスできるアプリケーションがあります。また、ログに記録されたユーザーに自分のアカウントの読み取りと書き込みの許可を求めることもできます。ユーザーがアプリを承認したら、次のようなユーザーとしてツイートを送信できます。

u = User.find(id)
u.twitter.update("Some-Status-Here")

Railsコンソールで...私がやりたいのは、1つのコマンドですべてのユーザーとしてツイートすることですが、次のようなことを試してみると:

u = User.all
u.twitter.update("Some-Status-Here")

次のエラーが表示されます。

undefined method `twitter' for #<Array:0x00000002e2f188>

1 つのコマンドですべてのユーザーとしてツイートするにはどうすればよいですか? 私は何を間違っていますか?欠けているのは非常に基本的なことだと思います...誰か助けてもらえますか?

ありがとうございました。

4

1 に答える 1

2

このUser.allメソッドは、単一のユーザーではなく、ユーザーの配列を返します。各ユーザーでメソッドを呼び出したい場合は、それをループする必要があります。

users = User.all
users.each do |user|
  user.twitter.update("Some status here")
end

とは言っても、最初にメッセージを表示して同意を求めることなく、ユーザーの Twitter ステータスを更新することはお勧めしません。

また、上記よりも効率的な方法がある可能性が高いため、パフォーマンスと API ヒット制限に注意してください。

于 2012-10-15T21:33:47.827 に答える