回答編集履歴
1
追記
test
CHANGED
@@ -141,3 +141,43 @@
|
|
141
141
|
6 rows in set
|
142
142
|
|
143
143
|
```
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
追記: 2017-11-19 11:30
|
148
|
+
|
149
|
+
User に has_many :order_details, through: :orders を追加して、
|
150
|
+
|
151
|
+
user.irder_detail をつかった場合は次のようになります。
|
152
|
+
|
153
|
+
(SQL として 2 つの SELECT が発行されています。 joins を使った場合は 1 つの SELECT でした。)
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
```ruby
|
158
|
+
|
159
|
+
irb(main):003:0> User.find_by(name: 'kato').order_details
|
160
|
+
|
161
|
+
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."name" = ? LIMIT ? [["name", "kato"], ["LIMIT", 1]]
|
162
|
+
|
163
|
+
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]]
|
164
|
+
|
165
|
+
+----+----------+--------+-------+--------+-------------------------+-------------------------+
|
166
|
+
|
167
|
+
| id | order_id | amount | price | item | created_at | updated_at |
|
168
|
+
|
169
|
+
+----+----------+--------+-------+--------+-------------------------+-------------------------+
|
170
|
+
|
171
|
+
| 1 | 1 | 1 | 100 | fish_a | 2017-11-19 02:01:31 UTC | 2017-11-19 02:01:31 UTC |
|
172
|
+
|
173
|
+
| 2 | 1 | 2 | 200 | fish_b | 2017-11-19 02:01:31 UTC | 2017-11-19 02:01:31 UTC |
|
174
|
+
|
175
|
+
| 3 | 2 | 1 | 10 | fish_a | 2017-11-19 02:01:31 UTC | 2017-11-19 02:01:31 UTC |
|
176
|
+
|
177
|
+
| 4 | 2 | 2 | 20 | fish_b | 2017-11-19 02:01:31 UTC | 2017-11-19 02:01:31 UTC |
|
178
|
+
|
179
|
+
+----+----------+--------+-------+--------+-------------------------+-------------------------+
|
180
|
+
|
181
|
+
4 rows in set
|
182
|
+
|
183
|
+
```
|