在视图中创建 Ruby on Rails 矩阵表

Posted

技术标签:

【中文标题】在视图中创建 Ruby on Rails 矩阵表【英文标题】:Creating a Ruby on Rails Matrix Table in a view 【发布时间】:2015-10-29 17:59:42 【问题描述】:

我有“年”、“月”和“值”字段的记录。我想做的是创建一个与每个“月”相对应的 12 列表,在“年”行中显示“值”。这似乎是一个非常简单的表格,但我似乎无法让视图正确显示它。

我不会费心发布我已经提出的代码(尚未),因为似乎没有什么能接近我正在寻找的东西。我似乎认为这可能是与“group_by”有关的很常见的事情,但我还没有在网上看到这种类型的示例。

这是表格的详细信息:

create_table "returns", force: true do |t| 
  t.integer "year" 
  t.integer "month" 
  t.decimal "value" 
end

这样做的最佳途径是什么?

【问题讨论】:

然后你画出你需要的东西? [mundaneaway.com/images/calendargrid.png] 这是电子表格形式的数据图像 你想要html格式的表格吗? 是的,我想让它类似于我在 Excel 中的数据透视表中可以做的事情,所以年份没有 1 月或 2 月的值,就像当年没有具有 Decemebr 的值 好的最后一件事粘贴你的模型,所以我看不到字段 【参考方案1】:

这是一个示例,您可以这样做,这不是有效的方法,但您可以改进:

years = (2008..2015).to_a
months = (1..12).to_a

<table>
<tr>
    <td>Januray</td>
    ## .. rest of <td>'s of the month name
</td>
    years.each do |year|
      <tr>
        <td><%=year%></td>
        months.each do |month|
          <td><%= Return.where(year: year,month: month).first.try(:value) %></td>
        end
      </tr>
    end
</table>

【讨论】:

以上是关于在视图中创建 Ruby on Rails 矩阵表的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Ruby on Rails 中的字符串值创建变量名?

Ruby on Rails 4,在视图中形成

在 Ruby on Rails 4.2 中使用 Cocoon gem 嵌套表单

Ruby on Rails:一对多关系视图

在 Ruby on Rails 3.2+ 中流式传输部分视图

Ruby on Rails 在带有静态脚本文件的视图中渲染