【问题标题】:Creating a Ruby on Rails Matrix Table in a view在视图中创建 Ruby on Rails 矩阵表
【发布时间】: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 的值
  • 好的最后一件事粘贴你的模型,所以我看不到字段

标签: html ruby-on-rails ruby matrix view


【解决方案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>

【讨论】:

    猜你喜欢
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多