2017-05-19 11 views
-1

Role.where(user_id: [current_user.id])からI出力データは、私が手:私のPostgresDBとRailsで定期的なデータを取得できないのはなぜですか?

#<Role::ActiveRecord_Relation:0x007f8afc3d75c8> 

私は、実際のデータを取得するために、これを操作しようとしたと何も作業していません。私が知っているように、私は過去に正常なデータを得ていたと非常に混乱しています...

たとえば、私のデータベースには、「user_id」列と「admin」列があります。レコードは保存されていますが、ユーザーの行から値を取得できません...

+0

Role.find_by( "user_id =?"、current_user.id) –

+0

はい - 同じことを返します...私はまだ必要な真の値を得ることができません... – code4fun

答えて

0

.whereは、さらに照会できるオブジェクトを返します。実際のレコードが必要な場合は.firstまたは.take(n)となります.nは.whereの後の数字です。

+0

どうやって私はそれをさらに照会しますか?私は "r.user_id"を試してみましたが、うまくいきませんでした... "Role.where(user_id:[current_user.id])"と等しいrを設定したところ – code4fun

+0

これをさらにクエリするということは、 '.joins'と' ActiveRecord'によって提供されるデータベースAPI全体を統合します。 '.where'の結果に' user_id'を呼び出すことはできません。その呼び出しは_result set_を表します。単一の値ではなく、値の配列を持つことと似ています。 私が言ったように、 '.first'を呼び出して、結果セットから最初の結果を選ぶ必要があります。 'r = Role.where(user_id:[current_user.id])。最初の' 'r.user_id#これは動作します' –

関連する問題