CSV导出给出#<product:0xba4618>和类似条目而不是真实数据?</product:0xba4618>

时间:2013-03-09 06:52:54

标签: ruby-on-rails ruby ruby-on-rails-3

我正在关注这个http://railscasts.com/episodes/362-exporting-csv-and-excel,看起来非常直截了当。我已经包含了'csv'并将代码放在控制器索引文件和模型中。

现在,当我点击/products.csv时,它确实导出了csv中的产品列表,但是没有实际数据,而是有这样的条目,我做错了什么?

编辑 - 这是product.rb

  attr_accessible :name, :size, :email

  def self.to_csv
    CSV.generate do |csv|
      csv << column_names
      all.each do |product|
        csv << product.attributes.values_at(*column_names)
      end
    end
  end

1 个答案:

答案 0 :(得分:0)

在您的产品控制器中定义如下方法:

def export_csv

    @Products = Product.find(:all)
    csv = CSV.generate do |csv|
        # header row
        csv << ["product_name","product_type"]
        # data row
        @products.each do |t|
            csv << [t.product_name, t.product_type]
        end
    end
    send_data(csv, :type => 'text/csv')
end  

在你的路线中:
匹配'csv'=&gt; 'products#export_csv',:as =&gt; :CSV
  在您的视图中为CSV提供链接:
 link_to“CSV”,csv_path