回答編集履歴
1
追記
answer
CHANGED
@@ -69,4 +69,24 @@
|
|
69
69
|
| 6 | 3 | 4 | 200 | beaf_b | 2017-11-19 02:01:31 UTC | 2017-11-19 02:01:31 UTC |
|
70
70
|
+----+----------+--------+-------+--------+-------------------------+-------------------------+
|
71
71
|
6 rows in set
|
72
|
+
```
|
73
|
+
|
74
|
+
追記: 2017-11-19 11:30
|
75
|
+
User に has_many :order_details, through: :orders を追加して、
|
76
|
+
user.irder_detail をつかった場合は次のようになります。
|
77
|
+
(SQL として 2 つの SELECT が発行されています。 joins を使った場合は 1 つの SELECT でした。)
|
78
|
+
|
79
|
+
```ruby
|
80
|
+
irb(main):003:0> User.find_by(name: 'kato').order_details
|
81
|
+
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."name" = ? LIMIT ? [["name", "kato"], ["LIMIT", 1]]
|
82
|
+
OrderDetail Load (0.3ms) SELECT "order_details".* FROM "order_details" INNER JOIN "orders" ON "order_details"."order_id" = "orders"."id" WHERE "orders"."user_id" = ? [["user_id", 1]]
|
83
|
+
+----+----------+--------+-------+--------+-------------------------+-------------------------+
|
84
|
+
| id | order_id | amount | price | item | created_at | updated_at |
|
85
|
+
+----+----------+--------+-------+--------+-------------------------+-------------------------+
|
86
|
+
| 1 | 1 | 1 | 100 | fish_a | 2017-11-19 02:01:31 UTC | 2017-11-19 02:01:31 UTC |
|
87
|
+
| 2 | 1 | 2 | 200 | fish_b | 2017-11-19 02:01:31 UTC | 2017-11-19 02:01:31 UTC |
|
88
|
+
| 3 | 2 | 1 | 10 | fish_a | 2017-11-19 02:01:31 UTC | 2017-11-19 02:01:31 UTC |
|
89
|
+
| 4 | 2 | 2 | 20 | fish_b | 2017-11-19 02:01:31 UTC | 2017-11-19 02:01:31 UTC |
|
90
|
+
+----+----------+--------+-------+--------+-------------------------+-------------------------+
|
91
|
+
4 rows in set
|
72
92
|
```
|