新手问题 怎么做类似 “课程表” 的表格?

cqcn1991 · 2013年09月01日 · 最后由 lionzixuanyuan 回复于 2013年09月09日 · 3091 次阅读

比如这种 一天,在各个时段有好几节课。每节课都根据“date”和“category”进行了分类 问题是,怎么实现“空格”呢?因为有的时间是空出来的 如果直接是appointments.each do 来输出的话 就肯定是这样的:

UPDATE: 如果是在循环里面再判断的话,怎么做? 我是这样

<% @appointments.each do |appointment| %>
    <% @categories.each do |category| %>
        <% if appointment.category == category %>
          <%= appointment %>  
        <% else %>
            placeholder
        <% end %>    
   <% end %>
<% end %>

但是结果就…… 这个应该是因为@categories.each导致了每个 appointment 都被循环了一次,所以有 2 个 appoint 就会产生两个表格

不知道咋弄了……

csv 思密达

html 的 table 不就是干这个的么?

#2 楼 @merlinran 可以求教一下具体咋写么。。。难道不是直接出来第 2 种图么。。。。

在你的 each 循环里加判断啊,如果满足对应的 appointment 和 category 就在页面显示,不满足就只加上<td></td> 或者你在准备 appointments 这个数组的时候就在对应的位置上插入空的元素占位

#4 楼 @lionzixuanyuan 不知道具体怎么判断? 我循环的时候,是

@appointments.each 
       @categories.each

这样就双循环出问题了。比如,当有两个 appointment 的时候,就会分别生成两个表 比如 因为对于不同的 appointment 需要分别判断。

#5 楼 @cqcn1991 你现在的问题是 appointment 没有换行,是吗? 如果是的话,你可以尝试将appointments循环和categories循环颠倒一下, 或者你可以在appointments循环内,增加<tr></tr>标签,并将categories循环放到<tr></tr>标签里面

需要 登录 后方可回复, 如果你还没有账号请 注册新账号