Objectif : Produire un document Excel avec des informations provenant de 3 modèles associés qui sont similaires à celles de mon tableau HTML. La gemme to_xls requiert ceci comme une liste de tableaux.
https://github.com/splendeo/to_xls
Sortie souhaitée :
(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
Une branche a plusieurs territoires. Un territoire a plusieurs comptes de messagerie.
Je peux afficher les données correctes dans ma vue grâce aux méthodes ActiveRecord intégrées pour show.html.erb.
<% for territory in @territories %>
<tr>
<td><%= territory.branch.name %></td>
<td><%= territory.zip %></td>
<td><%= territory.mailedcounts.maximum(:maileddate) %></td>
</tr>
<% end >
Voici ce que j'ai correctement exporté jusqu'à présent
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
Ce qui me donne territory.branch.name et territory.zip qui fonctionnent tous les deux correctement. En partant de territory, je n'arrive pas à trouver comment accéder aux informations de mes comptes de messagerie.