0

何らかの理由で、.each do を実行しようとするたびに、「undefined method 'each'」というエラーが発生し続けますが、以下の結果は 1 つです。

.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

配列ではなく単純なオブジェクトを取得するため、機能しません。取得した場合に単純なオブジェクトを取得して、直接的な手段を使用できるようにする.each ときに機能するメソッドarray

例えば

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

要素が 1 つしかない場合でも、each on を使用できます。User.select([:id]).where(fbookid: friends)要素がなくても例外は発生しません。

エラーは別の場所で発生しています。おそらく、各ループ内の何かでエラーが発生しています。

もっとコードを投稿できますか?

于 2012-11-06T06:11:31.100 に答える