gpt4 book ai didi

ruby-on-rails - 在 Rails 3.2 中从数组调用 ActiveRecord 关联方法

转载 作者:行者123 更新时间:2023-12-03 02:59:56 25 4
gpt4 key购买 nike

目标:生成一个 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 方法在 View 中显示正确的数据

<% 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

这给了我region.branch.name和territory.zip,它们都可以正常工作。从领土开始,我不知道如何获取我的邮寄计数信息。

最佳答案

使用自定义范围应该可以解决此问题。

class Territory < ActiveRecord::Base
scope :mailed_counts_max_date, lambda {
mailcounts.maximum(:maileddate)
}
end

然后在 Controller 中:

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, :mailed_counts_max_date ] )
}
end
end

关于ruby-on-rails - 在 Rails 3.2 中从数组调用 ActiveRecord 关联方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11112581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com