0

今、私は主題のグレードとバージョンをリストしようとしていますが、それらを反復する方法がわかりません):

結果の画像は次のとおりです。

ここに画像の説明を入力

クラスはここにあります:

class Subject

  has_many grades

  has_many versions

end

ここで、科目のグレードとバージョンを html ページにリストしたいと思います。html コードは次のとおりです。

<div class="row">

  <div class="span12">
    <table class="table table-bordered">

      <tbody>
        <tr  class="success">
          <td rowspan="4" style="text-align: center;vertical-align: middle;">Subject</td>
          <td>Subject1</td>
          <td>Subject2</td>
          <td>Subject3</td>

          <td rowspan="4" style="text-align: center;vertical-align: middle;">Grade</td>
          <td>Grade1</td>

          <td>Grade2</td>
          <td>Grade3</td>
          <td rowspan="4" style="text-align: center;vertical-align: middle;">Version</td>
          <td>Version1</td>
          <td>Version2</td>
          <td>Version3</td>


        </tr>
        <tr  class="success">
          <td>Subject4</td>
          <td>Subject5</td>
          <td>Subject6</td>
          <td>Grade4</td>
          <td>Grade5</td>
          <td>Grade6</td>

          <td>Version4</td>
          <td>Version5</td>
          <td>Version6</td>

        </tr>
        <tr   class="success">

          <td>Subject7</td>
          <td>Subject8</td>
          <td>Subject9</td>
          <td>Grade7</td>
          <td>Grade8</td>
          <td>Grade9</td>

          <td>Version7</td>
          <td>Version8</td>
          <td>Version9</td>

        </tr>
        <tr class="success">

          <td>Subject10</td>
          <td>Subject11</td>
          <td>Subject12</td>
          <td>Grade10</td>
          <td>Grade11</td>
          <td>Grade12</td>

          <td>Version10</td>
          <td>Version11</td>
          <td>Version12</td>

        </tr>

      </tbody>
    </table>
  </div>
</div>
4

1 に答える 1

0

この質問であなたが尋ねていることはたくさんありますが、簡単な答えは、ActiveRecord からそれらすべてを照会する必要があるということです。その後、Ruby の組み込みイテレーターを使用しArray#eachて、それぞれをループし、必要な HTML を書き出すことができます。

# in the controller...
@subjects = Subject.where(something)
@grades = Grade.where(something)
@versions = Version.where(something)

# in the view (ERB)...
<% @subjects.each do |subject| %>
  <td><%= subject.name %></td>
<% end %>

# in the view (HAML)...
- @subjects.each do |subject|
  %td= subject.name

いくつかのヒント:

  • テーブルではなく使用することで、おそらく自分で簡単にすることができdisplay: inline-blockます(もちろん、IE8 +のみをサポートしていると仮定します)
  • 科目/成績/バージョンのレンダリングは同じになる可能性が高いため、部分的なテンプレートを使用するのが賢明かもしれません。参照: http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials

絶対にテーブルを使用する必要がある場合は、 を使用Array#each_sliceして配列を分割できます。

# in the view (ERB)...
<% @subjects.each_slice(3) do |slice| %>
  <tr>
  <% slice.each do |subject| %>
    <td><%= subject.name %></td>
  <% end %>
  </tr>
<% end %>
于 2013-05-11T07:59:36.853 に答える