0

これは PHP で作成できますが、Rails では同じことが機能しません。

<div class="col">
    <div class="row">content 1 here</div>
    <div class="row">content 2 here</div>
</div>
<div class="col">
    <div class="row">content 3 here</div>
</div>

これらはすべて動的であるため、データベースの col フィールドが変更されるたびに新しい列を生成しようとしています。したがって、コンテンツ 1 の列は 1、コンテンツ 2、列 = 1、コンテンツ 3 の列 = 2 です。コンテンツが動き回るので、ajax を介してデータベースの列番号を更新します。問題は、すべてのコンテンツ ボックスを右の列にロードする方法です。Railsでこれを行うためのベストプラクティスは何ですか? これが私がPHPで行うことです(疑似コード)

<?php
    // this will be content from database
    $content = $dbdata;
    // start first column
    echo '<div class="col">';
    foreach($content as $thiscontent){
        // output row divs with content
        echo '<div class="row">'.$thiscontent['body'].'</div>';
        if($lastcol == $thiscontent['col']){
             // end col and create new col div
             echo '</div><div class="col">';
        }
        $lastcol = $thiscontent['col'];
    }
    // ends last column
    echo '</div>';
?>

私は初心者であり、これを間違った方法で行っている可能性があるため、これをどのように行うべきかについてお気軽に教えてください. 私のデータベースは列番号を決定する方法ではありませんか? レールは、私が思っているのとは違った方法でイテレーションを処理しますか?

4

1 に答える 1

1

レールでは、これを試すことができます。それをビューファイルに入れます:

    // start first column
    <div class="col">
    <% @dbdata.each do |thiscontent| %>
      // output row divs with content
      <div class="row"><%= thiscontent.body %></div>
      <% if !lastcol.nil? and lastcol == thiscontent.col %>
        // end col and create new col div
        </div><div class="col">
      <% end
      lastcol = thiscontent.col
    end %>
    // ends last column
  </div>

コントローラーから @dbdata をビューに渡す必要があることに注意してください

于 2013-04-28T06:47:12.217 に答える