Komei22 / rails-tutorial

rails-tutorialのsample_app作っていきます
0 stars 0 forks source link

ch6.1.4演習 #28

Closed Komei22 closed 7 years ago

Komei22 commented 7 years ago

ch6.1.4演習

演習1

nameを使ってユーザーオブジェクトを検索してみてください。また、 find_by_nameメソッドが使えることも確認してみてください (古いRailsアプリケーションでは、古いタイプのfind_byをよく見かけることでしょう)。

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">

演習2

実用的な目的のため、User.allはまるで配列のように扱うことができますが、実際には配列ではありません。 User.allで生成されるオブジェクトを調べ、ArrayクラスではなくUser::ActiveRecord_Relationクラスであることを確認してみてください。

irb(main):050:0> User.all.class
=> User::ActiveRecord_Relation

演習3

User.allに対してlengthメソッドを呼び出すと、その長さを求められることを確認してみてください

irb(main):051:0> User.all.length
  User Load (0.1ms)  SELECT "users".* FROM "users"
=> 2