A 多対1 B
という関係のテーブルでそれぞれのカラムを表示させています。
以下のようにA
のeach文の中にB
のeach文を回しているのですが、
ruby
1<% @A.each do |a| %> 2 <% a.bs.each do |b| %> <!-- bs はhas_many先のBテーブルのことです。--> 3 4 <div class="box"> 5 <h1><%= a.title %></h1> 6 <p><%= b.content %></p> 7 </div> 8 9 <% end %> 10<% end %>
a.title
の部分、B
のeach文内でAの変数にアクセスしている部分で、正常に表示されると思いきや、
A
テーブルの最初のレコードのみが繰り返し表示されてしまいます。
ruby
1<div class="box"> 2 <h1>タイトル1</h1> 3 <p>内容1</p> 4</div> 5 6<div class="box"> 7 <h1>タイトル1</h1> 8 <p>内容2</p> 9</div>
B
テーブルのレコードは正常に繰り返され表示されていますが、A
テーブルの最初のレコード「タイトル1」が繰り返し表示されます。
原因がまったくわかりません。
<% @A.each do |a| %>
直後にinspect
でデバッグすると、正常に回っているのですが、B
のeach文内・end以降は「タイトル1」が繰り返される状態で不思議です。
どのように記述すれば、下記の理想のように表示されるでしょうか?ご回答よろしくお願いいたします。
理想
ruby
1<div class="box"> 2 <h1>タイトル1</h1> 3 <p>内容</p> 4</div> 5 6<div class="box"> 7 <h1>タイトル2</h1> 8 <p>内容</p> 9</div>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。