2012-11-06 78 views
0

由於某些原因,每當我嘗試執行每個錯誤時,我都會收到一個「未定義的方法」錯誤。。如果只有1個結果,每個斷點都會打開

如果我使用.inspect,我可以看到有一個匹配。如果結果不超過1個,那麼每個工作都會工作嗎?如果不是,我應該用什麼來代替?

<% 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>] 

任何幫助,將不勝感激!

謝謝!

UPDATE

中添加其他參數似乎允許我使用各...我不知道爲什麼。這是一樣的結果(只有1)。

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

我真的把所有其他的代碼都剪掉了。對於這三行,如果我使用。每個我得到的錯誤,如果我使用.inspect我得到上述。 – user749798

回答

0

你得到簡單的對象不是數組,所以它不工作。 .each方法時,如果你得到array你簡單對象的工作,這樣就可以用直接的手段是

例如

# if name attributes 
User.select([:id]).where(fbookid: friends).name 
+0

有沒有一個解決方案,我可以循環不管什麼而不是區分多個結果和一個? – user749798

+0

你得到1條記錄,那你怎麼用循環? –

+0

但我未來可能無法獲得一條記錄......這就是爲什麼我要問......我必須每次都檢測是否有一位用戶? – user749798

0

可以用旺火上User.select([:id]).where(fbookid: friends),即使只有1元件。即使沒有元素,它也不會引發異常。

錯誤發生在其他地方。也許你在每個循環內部發生了一些錯誤。

你能發表更多的代碼嗎?