我可以在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对迭代的处理方式与我怀疑的不同吗?
答案 0 :(得分: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传递给控制器中的视图