新手问题 关于循环的问题

luliangshu · 2013年12月20日 · 最后由 luliangshu 回复于 2014年01月22日 · 2471 次阅读
<% (0..8).each do |i| %>
                      <tr class="<%= (i % 2 == 0) ? "even" : "odd" %>">
                        <td>data</td>
                        <td>4*******6767</td>
                        <td class="payment"><a href="#">Download Receipt</a></td>
                        <td>USD $30</td>
                      </tr>
                    <% end %>

我有上面的这种循环 先循环出来框架 也就是 循环出来了 9 个 tr 假如我有 3 条数据 那么我如何在这个里面插入这 3 条 比如数据是 current_user.subscriptions 我如何读出其中的每一条。 如下图 如何在我循环出来的这个表格里面套数据

@reyesyang 额、、太笨 还是不太明白。。难道这里不能循环这个列表 只能写出来 然后在每个输出数据的地方写对数据的循环?

#2 楼 @luliangshu 当然能 你先写一个你自己想的 然后贴出来大家帮你看好不好

我有上面的这种循环 先循环出来框架 然后再填数据 我该如何在这个里面循环输出数据?

楼主你自己读读这是什么意思?

"> 可以改成这样: ">

@zj0713001 @Rei 修改了一下问题。。不知道这样明确不了。。

#6 楼 @luliangshu 你就直接在 each 中套 each 不就好了 但是这样 9 个 tr 就都是这 3 个数据 不知道这是不是你想要的?

8 楼 已删除

@zj0713001 我是有 9 个 tr 我有 3 条数据 要插入前 3 个 tr 是这个意思

#5 楼 @xds2000 没想到可以这么用哇 不过一直用 css

tr:nth-child(odd) { color:green; } 
tr:nth-child(even) { color:red; } 

要是兼容浏览器,直接祭大招

$("tbody>tr:nth-child(even)").addClass("even");
$("tbody>tr:nth-child(odd)").addClass("odd");

(0..8).each do 这样写也非常奇怪 9.times do |i|

@shooter 你这招靠谱。

13 楼 已删除

@xds2000 都改正了 谢谢大神。顺便问下 我问的那个问题怎么解决。不是很懂

=.=!没人告诉么。。着急啊。。。

#15 楼 @luliangshu 我终于明白你的意思了 你想的是 添加 9 个表格 但是只有其中的 3 个表格有数据 对不对...

@zj0713001 恩 就是这样 固定输出 9 行 tr 然在里面填数据

#17 楼 @luliangshu current_user.subscriptions.fill(Subscriptions.new, current_user.subscriptions.length, 9-current_user.subscriptions.length)[0..8].each do |subscription|

循环的内容是你的 tr 模板 这样的结果是你有 n 个有数据的 tr 和 9-n 个没有数据的 new 的 tr

@luliangshu 有个直接的办法,手写的,不一定全对,表达一下思路。

# in controller
@subscriptions = Array.new(9, nil)
current_user.subscriptions.each_index {|o,i|  @subscriptions[i] = o }

# in view
<%= render partial: "subscription", collection: @subscriptions, as: :subscription %>

@zj0713001 就是这样 感谢。但这样如果我还有翻页呢 哪里有相关的文档 我怎么没找到 fill。。

@luliangshu 如果加上分页,那就是另外的解法,但道理都是一样的。

看了三遍也没看懂楼主想干什么

@tyaccp_guojian ...额。。。就是相当于在表格里面输出数据。。我截图了。。

哦,明白了,你是想将一个 Array 循环输出,每个属性一个 td,每个元素一个 tr,最终形成一个 table

恩 table 里面固定输出了 9 行。数据是不固定的 想循环输出数据到表格里面

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