activerecord返回模型,其中包含csv的关联模型字段

时间:2014-11-20 14:44:32

标签: ruby-on-rails rails-activerecord export-to-csv

我有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框架内完成?

1 个答案:

答案 0 :(得分:0)

你只是生成一个阵列来传递给css制造商,从中做出一条线,对吗?您可以随意构建该阵列。

        csv << ["Category"] + column_names
        all.each do |ae|
            csv << [ae.category && ae.category.name] + ae.attributes.values_at(*column_names)
        end