0

出于某种原因,当我在下面得到一个结果时,每次尝试执行 .each 时,我都会不断收到“未定义的方法‘每个’”错误。

如果我使用 .inspect,我可以看到有匹配项。如果结果不超过 1 个,.each 是否有效?如果没有,我应该改用什么?

<% friends = graph.get_object("/me/friends").map{ |hash| hash["id"] } %>

<% User.select([:id]).where(fbookid: friends).each do |common| %>

<% end %>

如果我只是在 User.select 行上运行 .inspect (不是每个),那么我会得到

[#<User id: 1>]

任何帮助,将不胜感激!

谢谢!

更新

添加额外的参数似乎允许我使用每个......我不知道为什么。这是完全相同的结果(只有 1 个)。

User.select([:id, :email, :first_name]).where(fbookid: friends).each do |friend|
4

2 回答 2

0

你得到简单的对象而不是数组,所以它不起作用。.eacharray你得到简单的对象以便你可以直接使用时方法工作意味着

例如

# if name attributes
User.select([:id]).where(fbookid: friends).name
于 2012-11-06T05:35:24.917 回答
0

可以使用 each on User.select([:id]).where(fbookid: friends),即使只有 1 个元素。即使没有元素,它也不会引发异常。

错误发生在其他地方。也许您在每个循环中遇到了错误。

您可以发布更多代码吗?

于 2012-11-06T06:11:31.100 回答