初歩的なんですが、each文での繰り返し方について悩んでいます。
A 多対1 B
の関係でテーブルA
とテーブルB
にあるレコードをそれぞれeach文で取り出しています。
理想は以下のように表示させたいです。
h1
のタイトルは、Aテーブルに格納されているレコードの内容で、p
はBテーブルのレコードです。
html
1<div class="box"> 2 <h1>タイトル</h1> 3 <p>内容</p> 4</div> 5 6<div class="box"> 7 <h1>タイトル</h1> 8 <p>内容</p> 9</div>
以下のようにただeach文を2重にしても、すべてのレコード分回り続け、一つのdiv
にp
タグがすべてのレコード分表示されてしまいます。
ruby
1<% @A.each do |a| %> 2 <div class="box"> 3 <h1><%= a.title %></h1> 4 5 <% @B.each do |b| %> 6 <p><%= b.content %></p> 7 <% end %> 8 9 </div> 10<% end %>
そこで、実行するたびにBのeach文を1回だけループするように制限したのですが、2回目からが実行されません。
ruby
1a.b.first(1).each do |b| 2 <p><%= b.content %></p> 3end
論理的には思い通りになるはずですが、なぜ実行されないのでしょうか?
参考記事
[Ruby eachループの回数を指定する](http://keruuweb.com/ruby-each%E3%83%AB%E3%83%BC%E3%83%97%E3%81%AE%E5%9B%9E%E6%95%B0%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%99%E3%82%8B/)
初歩的ですみませんが、ご回答よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/23 14:14