我目前正在研究一种大型测量应用程序,该应用程序目前正在Heroku上生产(Cedar,4 web dynos,Crane PostgreSQL数据库)。由于时间限制,我有一个Survey模型,通过attr_accessible公开问题。我希望导出天数结果,通常是5000多行数据,大约45列。
当我导出当天的调查(Survey.where("created_at >= ?", Time.now.beginning_of_day)
)时,使用this和this的组合,它会提示下载,下载,但是当我打开它时,我只有2/3的数据。有时它会在一排中途切断。
似乎我遇到了某种内存问题,或者是将所有内容正确发送到Excel / CSV的问题。我确信这是因为数据大小,但我无法控制,我只是想找到问题。关于如何解决这个问题的任何想法?这非常令人虚弱。
以下是调查模型中处理CSV / Excel编写的代码:
def self.to_csv(options = {})
CSV.generate do |csv|
csv << column_names
all.find_each do |survey|
csv << survey.attributes.values_at(*column_names)
end
end
end
目前在控制器上,我在index.xls.erb中格式化所有内容。
感谢您提供的任何帮助。
答案 0 :(得分:0)
我解决了这个问题!经过一番探索之后,我从使用HTML格式的view / xls文件切换到仅在视图中格式化的准系统CSV,如answer中所述。这非常有效。感谢大家的故障排除想法!