在视图中创建 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.2 中使用 Cocoon gem 嵌套表单