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 的 col 为 1,内容 2,col = 1,内容 3 的 col = 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>';
?>

我可能只是一个菜鸟并且以错误的方式去做这件事,所以请随时教育我应该如何做。我的数据库不是确定列号的方法吗?rails 处理迭代的方式与我怀疑的不同吗?

4

1 回答 1

1

在rails中你可以尝试这样做。把它放在一个视图文件中:

    // 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 回答