出于某种原因,每次我尝试执行此操作时,我都会收到“未定义的方法'每个'”错误。当我在下面有一个结果时,我会这样做。
如果我使用.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|
答案 0 :(得分:0)
你得到简单的对象而不是数组,因此它不起作用。当.each
获得简单对象以便您可以直接使用
array
方法正常工作
例如
# if name attributes
User.select([:id]).where(fbookid: friends).name
答案 1 :(得分:0)
你 可以 使用User.select([:id]).where(fbookid: friends)
上的每一个,即使只有一个元素。即使没有元素,它也不会引发异常。
错误发生在其他地方。也许你在每个循环中的某些内容上都会出错。
你可以发布更多代码吗?