为每8个Rails创建新的tablerow

时间:2016-07-16 01:24:29

标签: ruby-on-rails ruby

我有上传到我网站的文件,这些文件存储在数据库中。我想这样做,以便每上传8个文档,创建一个表中的新行,以便在上载新文档时,如果表行中已有8个文档,则该文档将被放置在新行中。

目前我已经拥有它,以便每次添加文档时,都会创建一个新的表格单元格,其中包含新文档及其标题。我只是不知道如何制作它,以便在8个文档而不是创建一个非常长的表后,创建一个新的表行以容纳新文档。

下面是我的代码和ruby循环:

  <table>
  <% @documents.each_slice(8) do |document| %>
    <tr>
      <% document.each do |document| %>
      <td><%= document.title %>: <%= link_to "Download", Document.last.pdf.url(:original, false) %>
      </td>
    </tr>
  </table>
  <% end %>
<% end %>

以下是结果:

enter image description here

如您所见,我创建了8个以上的文档,但它们并没有创建新的表格行。接受建议!

1 个答案:

答案 0 :(得分:1)

您的代码几乎是正确的,除了您在两个不同document块中使用相同do块参数的事实,例如:

<table>
<% @documents.each_slice(8) do |document| %>
<tr>
  <% document.each do |document| %>

以及end语句以混乱的方式使用。

使用此代码段:希望它有效!

<table>
<% @documents.each_slice(8) do |eight_documents| %>
  <tr>
  <% eight_documents.each do |document| %>
    <td><%= document.title %>: <%= link_to "Download", Document.last.pdf.url(:original, false) %></td>
  <% end %>
  </tr>
<% end %>
</table>