teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

修正

2019/09/16 11:55

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -32,13 +32,13 @@
32
32
  fugas = Fuga.where(piyo_id: 1)
33
33
 
34
34
  hoges.each do |hoge|
35
+ ~~~hogeを使った処理を1回実行~~~
35
36
  fugas.each do |fuga|
36
- ~~~hogeを使った処理~~~
37
- ~~~fugaを使った処理~~~
37
+ ~~~fugaを使った処理を1回実行~~~
38
38
  end
39
39
  end
40
40
  ```
41
41
 
42
- ですが、こ順番だとまくきません
42
+ な処理をしたです
43
43
 
44
44
  ブロックのなかの情報をもとに、別の繰り返し処理をするやり方をご教示頂きたいです。

3

修正

2019/09/16 11:55

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -15,7 +15,7 @@
15
15
  hoges = Hoge.where(piyo_id: 1)
16
16
 
17
17
  hoges.each do |hoge|
18
- fuga = Fuga.find_by(ingredient_name: hoge.name)
18
+ fuga = Fuga.find_by(fuga_name: hoge.name)
19
19
  ~~~処理~~~
20
20
  end
21
21
  ```

2

修正

2019/09/16 11:52

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -20,7 +20,9 @@
20
20
  end
21
21
  ```
22
22
 
23
+ 上記のように
24
+
23
- 取得した `hoges` をもとに `hoge.name` というブロック変数を使って
25
+ 取得した `hoges` をもとに `hoge` というブロック変数を使って
24
26
  `fuga` のデータを取得していたのですが
25
27
  SQLがその都度発行されて `N+1` となるので、
26
28
  whereを使用して、1回で発行しようと考えた次第です。

1

修正

2019/09/16 11:51

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -23,9 +23,12 @@
23
23
  取得した `hoges` をもとに `hoge.name` というブロック変数を使って
24
24
  `fuga` のデータを取得していたのですが
25
25
  SQLがその都度発行されて `N+1` となるので、
26
- whereを使用して、1回で発行しようと考えた次第です。
26
+ whereを使用して、1回で発行しようと考えた次第です。
27
27
 
28
28
  ```
29
+ hoges = Hoge.where(piyo_id: 1)
30
+ fugas = Fuga.where(piyo_id: 1)
31
+
29
32
  hoges.each do |hoge|
30
33
  fugas.each do |fuga|
31
34
  ~~~hogeを使った処理~~~