0

ActiveRecord コレクションがあり、その中で自分の ID を確認したいと考えています。

@items_user_id = Item.select("DISTINCT user_id").where(:user_id => current_user.id)

そして私はチェックします

@items_user_id.include?(params[:id]) 

ゼロを返しました

どうしたの?

UPD 1 : 必要なもの - param[:id] にはアイテムの ID が含まれています。ユーザーは、自分が作成したアイテムのみを編集できます。そして、識別子プール内のアイテム識別子がアイテムユーザーかどうかを確認したいと思います。

4

3 に答える 3

0

つまり、リンゴとオレンジを比較しています。

長い答え:

@items_user_id = Item.select("DISTINCT user_id").where(:user_id => current_user.id)この行は要素を返しArrayますItem

Stringparams[:id] は、またはそのようになる可能性がありInteger、配列には見つかりません。

于 2012-11-30T09:42:13.400 に答える
0

選択すると、次のクエリが実行されます。

SELECT DISTINCT user_id FROM items WHERE user_id = ?

それは、何も生成しないか、user_id だけを含む単一の行を生成します。

あなたは本当に何が欲しいですか?

于 2012-11-30T10:05:25.353 に答える
0

取得した配列から ID を収集し、確認してみてください。

@items_user_id.map(&:id).include?(params[:id])

ids(string) のデータ型が params[:id] と一致することを確認してください

于 2012-11-30T09:59:55.910 に答える