我想使用Rails 3.2将所有数据库条目导出到csv中。我一直在关注these指示:
我的控制器: 编辑:我已经从类方法更改为实例方法
...
elsif params[:reference] == 'exportnews'
@data = News.find(:all, :order => "date_posted desc", :conditions => "#{Settings.show} = 1", :limit => "5")
respond_to do |format|
format.html { redirect_to root_url }
format.csv { send_data @data.to_csv }
end
else
...
我的模特:
class News < ActiveRecord::Base
attr_accessible :content, :date_posted, :heading, :hidden, :reference, :title, :user
def to_csv(options = {})
CSV.generate(options) do |csv|
csv << column_names
all.each do |product|
csv << product.attributes.values_at(*column_names).map(&:to_csv)
end
end
end
end
当我访问指定的网址时(我已在config/routes.rb
创建了一条路线,我收到了一个csv文件,其中包含以下详细信息:
#<News:0x007fef657d69f8> #<News:0x007fef632b95a8> #<News:0x007fef632b8ec8> #<News:0x007fef632b8680> #<News:0x007fef632b7e38>
我错过了什么?
答案 0 :(得分:0)
您似乎没有以这种方式调用您的方法(您正在调用原始.to_csv
方法。请在您的视图中尝试执行此操作:
format.csv { send_data @data.map(&:to_csv }