これはおそらく私の側の大きな見落としですが、運がないので、約1時間修正を探していました!
データの .CSV へのエクスポートに関する RailsCast チュートリアルに従っています
CSV の入力に使用しているデータは、Ransackクエリからのものです (params 内)。
ただし、吐き出されているデータは、生データ自体ではなく、データ オブジェクトのコレクションです。
ブラウザでの出力:
#<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