Closed Komei22 closed 7 years ago
irb(main):047:0> User.find_by(name: "Michael Hartl") User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."name" = ? LIMIT ? [["name", "Michael Hartl"], ["LIMIT", 1]] => #<User id: 1, name: "Michael Hartl", email: "mhartl@example.com", created_at: "2017-06-28 05:36:33", updated_at: "2017-06-28 05:36:33">
irb(main):049:0> User.find_by_name("Michael Hartl") User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."name" = ? LIMIT ? [["name", "Michael Hartl"], ["LIMIT", 1]] => #<User id: 1, name: "Michael Hartl", email: "mhartl@example.com", created_at: "2017-06-28 05:36:33", updated_at: "2017-06-28 05:36:33">
irb(main):050:0> User.all.class => User::ActiveRecord_Relation
irb(main):051:0> User.all.length User Load (0.1ms) SELECT "users".* FROM "users" => 2
ch6.1.4演習
演習1
nameを使ってユーザーオブジェクトを検索してみてください。また、 find_by_nameメソッドが使えることも確認してみてください (古いRailsアプリケーションでは、古いタイプのfind_byをよく見かけることでしょう)。
演習2
実用的な目的のため、User.allはまるで配列のように扱うことができますが、実際には配列ではありません。 User.allで生成されるオブジェクトを調べ、ArrayクラスではなくUser::ActiveRecord_Relationクラスであることを確認してみてください。
演習3
User.allに対してlengthメソッドを呼び出すと、その長さを求められることを確認してみてください