目標: 3 つの関連付けられたモデルからの情報を含む Excel ドキュメントを生成します。これは、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
これにより、territory.branch.name とterritory.zip の両方が適切に機能します。地域から始めて、mailedcounts 情報を取得する方法がわかりません。