次のコード:
User.all.each {|u| puts u.id}
すべてのレコードのすべてのフィールドを出力します。
id
フィールドのみを印刷するように変更するにはどうすればよいですか?
次のコード:
User.all.each {|u| puts u.id}
すべてのレコードのすべてのフィールドを出力します。
id
フィールドのみを印刷するように変更するにはどうすればよいですか?
この動作を再現することはできませんでしたが、コンソールでこれを見ている場合は、#each
すべてのフィールドを出力する各への呼び出しに対して、self を返す (そして User オブジェクトの大きな配列である self が検査される) という事実を誤解している可能性があります。代わりに実行User.all.each {|u| puts u.id}; nil
して、それぞれの後にコンソールを返してnil
、動作が持続するかどうかを確認できますか?
この irb または rails コンソールを実行している場合、ID のみが出力されますが、コードから返されるのは、コンソールが出力する一連のユーザーです。上にスクロールすると、期待どおりの出力が表示され、続いてすべてのユーザー オブジェクトが完全な詳細と共に出力されます。
を実行するputs u
と、ハッシュまたはオブジェクトが得られますか? ハッシュの場合は、ではなくputs u[:id]
orを使用します。puts u['id']
puts u.id