私はループの基本を学ぼうとしてきましたが、そこにたどり着いていますが、次の要件を回避するのに苦労しています。 /values は配列にハッシュされているようです(? - ここでは初心者なので、私の用語が正しいことを願っています!):-
データは、db テーブルの 1 つの「列」の値が何度も繰り返されるようなものですが、2 番目の「列」の値は一意です。
したがって、同じテキスト行を繰り返し表示する column1 を持つ 2 つの列を持つ単純な出力用のテーブルを HTML で単純に作成するのではなく (次の一意の文字列が何度もリストされる前に)、情報を提示したいと思います。 column1 の一意の文字列値は見出しで、column2 の値はその下にリストされます。
私の考えでは、私が達成しようとしているのは、一意の文字列ごとに column1 をループし、その値を出力し、内部ループを実行して、column1 が「文字列」である column2 のすべての値をリストし、次の値に進むことだと思います。列1の一意の値、その値を出力し、列2を再度ループして、列1が「文字列2」であるすべての値をリストします。
正しい用語で説明する方法を知るのに苦労しているので、それが理にかなっていることを願っています.
ありがとう。
たとえば、データベース テーブルの 2 つの列が次のようになっているとします。
列
1
Q1 Q1
Q1
Q2
Q2
Q3
Q3
Q3
列 2
A1
A2
A3
A4
A5
A6
A7
A8
次のような出力を表示できるようにするには、どうすればループ (または最適なもの) を実行できますか?
Q1
A1
A2
A3
Q2
A4
A5
Q3
A6
A7
A8
HTML側を記述して出力をフォーマットすることはできますが、ルビー側はわかりません。
単一のループについて、tiny_tds の例から次のルビーをピックアップしました (ここの html は、今のところ配置をテストするためのものです):-
<% narrative.each do |question| %>
<span><%=question.values[1] %></span>
<br/>
<% end %>
これにより、スロット 2 のすべての値をリストすることができます (これは正しい用語ですか?)。次のようなことができます。
<% narrative.each do |question| %>
<span><%=question.values[0] %></span><span><%=question.values[1] %></span>
<br/>
<% end %>
両方を並べて表示しますが、私がやりたいことは、次のようになります。
<h1>Question1 goes here</h1>
<ul>
<li>Answer 1</li>
<li>Answer 2</li>
<li>Answer 3</li>
</ul>
<h1>Question2 goes here</h1>
<ul>
<li>Answer 4</li>
<li>Answer 5</li>
</ul>
等