目标:生成一个 Excel 文档,其中包含来自 3 个相关模型的信息,类似于我的 HTML 表格中的信息。to_xls gem 需要它作为数组列表。
https://github.com/splendeo/to_xls
期望的输出:
(working for both) (working for both) (working in HTML, not in Excel)
territory.branch.name territory.zip territory.mailedcounts.maximum(:maileddate)
My Branch 90210 2012-05-01
My Branch 90211 2012-05-03
My Branch 90212
一个分支有许多区域。一个区域有许多 Mailedcounts。
我可以通过 show.html.erb 的内置 ActiveRecord 方法在我的视图中显示正确的数据
<% for territory in @territories %>
<tr>
<td><%= territory.branch.name %></td>
<td><%= territory.zip %></td>
<td><%= territory.mailedcounts.maximum(:maileddate) %></td>
</tr>
<% end >
这是我到目前为止正确导出的内容
class BranchesController < ApplicationController
.
.
.
def show
@branch = Branch.find(params[:id])
@territories = @branch.territories
respond_to do |format|
format.html
format.xls {
send_data @territories.to_xls(:columns => [ { :branch => :name }, :zip ] )
}
end
end
这给了我可以正常工作的区域.branch.name 和区域.zip。从领土开始,我不知道如何获取我的邮件计数信息。