Komei22 / rails-tutorial

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

ch14.1.2演習 #96

Closed Komei22 closed 7 years ago

Komei22 commented 7 years ago

演習1

コンソールを開き、表 14.1のcreateメソッドを使ってActiveRelationshipを作ってみましょう。データベース上に2人以上のユーザーを用意し、最初のユーザーが2人目のユーザーをフォローしている状態を作ってみてください。

irb(main):001:0> user1 = User.first
  User Load (0.9ms)  SELECT  "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT ?  [["LIMIT", 1]]
=> #<User id: 1, name: "Example User", email: "example@railstutorial.org", created_at: "2017-07-11 09:36:31", updated_at: "2017-07-11 09:36:31", password_digest: "$2a$10$OtC8TkXqecT1WakY8FRpXu.xccuvXG/Yg0qON9MXf4J...", remember_digest: nil, admin: true, activation_digest: "$2a$10$giMTzAH0Yk.pV1RsWuQ0WOHIYEzQcI59tRxPKn96zDl...", activated: true, activated_at: "2017-07-11 09:36:30", reset_digest: nil, reset_sent_at: nil>
irb(main):002:0> user2 = User.second
  User Load (0.3ms)  SELECT  "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT ? OFFSET ?  [["LIMIT", 1], ["OFFSET", 1]]
=> #<User id: 2, name: "Meaghan Denesik", email: "example-1@railstutorial.org", created_at: "2017-07-11 09:36:31", updated_at: "2017-07-11 09:36:31", password_digest: "$2a$10$Wi3RpNlOlZEi8hJ4Q099H.ZZgybvyZnVuYy.82xb6p9...", remember_digest: nil, admin: false, activation_digest: "$2a$10$q8figxvxn.IxEJxdirPpFO/ugXTPd/RtNy1f.XfOp8W...", activated: true, activated_at: "2017-07-11 09:36:31", reset_digest: nil, reset_sent_at: nil>
irb(main):004:0> user1.active_relationships.create(followed_id: user2.id)
   (0.1ms)  begin transaction
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ? LIMIT ?  [["id", 1], ["LIMIT", 1]]
  User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ? LIMIT ?  [["id", 2], ["LIMIT", 1]]
  SQL (4.7ms)  INSERT INTO "relationships" ("follower_id", "followed_id", "created_at", "updated_at") VALUES (?, ?, ?, ?)  [["follower_id", 1], ["followed_id", 2], ["created_at", "2017-07-14 02:31:39.547878"], ["updated_at", "2017-07-14 02:31:39.547878"]]
   (1.1ms)  commit transaction
=> #<Relationship id: 1, follower_id: 1, followed_id: 2, created_at: "2017-07-14 02:31:39", updated_at: "2017-07-14 02:31:39">

演習2

先ほどの演習を終えたら、active_relationship.followedの値とactive_relationship.followerの値を確認し、それぞれの値が正しいことを確認してみましょう。

irb(main):037:0> user1.active_relationships
=> #<ActiveRecord::Associations::CollectionProxy [#<Relationship id: 1, follower_id: 1, followed_id: 2, created_at: "2017-07-14 02:31:39", updated_at: "2017-07-14 02:31:39">]>