我有2个型号的产品和类别
class Product < ActiveRecord::Base
belongs_to :category
def self.to_csv(options = {})
CSV.generate(options) do |csv|
csv << column_names
all.each do |ae|
csv << ae.attributes.values_at(*column_names)
end
end
end
end
class Category < ActiveRecord::Base
has_many :products
end
@products = Product.all
@products.to_csv # this line convert product model to csv
要生成所有产品的csv演示文稿,而不是显示category_id外键,我想显示Category模型的名称字段,以便csv文件更自我解释。
我想到的一种方法是使用原始sql查询而不是activerecord?但这打破了to_csv方法
我如何在Activerecord框架内完成?
答案 0 :(得分:0)
你只是生成一个阵列来传递给css制造商,从中做出一条线,对吗?您可以随意构建该阵列。
csv << ["Category"] + column_names
all.each do |ae|
csv << [ae.category && ae.category.name] + ae.attributes.values_at(*column_names)
end