出口嵌套实体到CSV文件
问题描述:
我有一些嵌套数据的Rails应用程序,我想作为一个CSV文件导出出口嵌套实体到CSV文件
的模型看起来像:
class ContainerRecord < ActiveRecord::Base
has_many :child_records
和
class ChildRecord < ActiveRecord::Base
belongs_to :container_record
我希望能够导出每个ContainerRecord在一行中的CSV文件,其前几列中的信息以及其余列中每个ChildRecord的值。
我不能保证与每个ContainerRecord相关联的ChildRecord的数量,我不在乎每行是否有不同数量的非空列。
我试图使用FasterCSV,但是我将所有的子记录数据推入一列而不是每列的一列。
这是我能用FasterCSV做的事吗?如果不是,我可以用什么方法来实现我的目标?
答
不确定FasterCSV但快速&肮脏的解决方案可能是:
class ParentClass < AR::Base
has_many :children
def self.csv
all.map do |object|
(object.attributes.values + object.children.map(&:child_field)).flatten.join(',')
end.join("\n")
end
end
更换“child_field”你想要从课程的孩子模式,以现场。
感谢您的解决方案,我最终找到了一个很好的csv_builder教程,并决定走这条路。 – jessecurry 2010-03-08 15:54:19