1

我有一个应用程序,它使用 Twitter 作为提供者具有 Oauth 访问权限。我还可以要求登录的用户允许在他/她的帐户中读取和写入,一旦用户授权该应用程序,我可以以用户身份发送推文,例如:

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

在rails控制台中......我想做的是在一个命令中以所有用户的身份发推文,但如果我尝试类似:

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

我收到此错误:

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

如何在一个命令中以所有用户的身份发推文?我究竟做错了什么?我觉得这是我缺少的一个非常基本的东西......有人可以帮助我吗?

谢谢你。

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 回答