这可能是我的一个巨大的疏忽,但我一直在寻找解决方案大约一个小时,但没有运气!
我正在关注关于将数据导出到 .CSV 的 RailsCast 教程
我用来填充 CSV 的数据来自Ransack查询(在参数中)
然而,被吐出的数据是数据对象的集合,而不是原始数据本身——
浏览器中的输出:
#<Order:0x007f820823c738>,#<Order:0x007f82082ad708>,#<Order:0x007f82082ace98>,
#<Order:0x007f82082ac718>
我只是想得到那些相同的对象,但只是打印出来......就像在 RailsCasts 教程(截图)
这是我的 Orders_Controller
def index
@search = Order.search(params[:q])
@orders = @search.result
@results = @orders
respond_to do |format|
format.html # index.html.erb
format.csv { render text: @results.to_csv }
end
end
那么有没有一种简单的方法可以将这些数据对象转换为教程中的原始字符串?
编辑
这是我to_csv
的模型中的方法
def self.to_csv(options = {})
CSV.generate(options) do |csv|
csv << column_names
all.each do |order|
csv << order.attributes.values_at(*column_names)
end
end
end