我在Rails应用程序中进行CSV导出。
数据从后端API作为JSON数组返回。
但是现在我在export_data方法中收到"undefined method 'to_csv' for #Hash:0x007f149a5ff978"
错误。
我在config / application.rb文件中包含了require "csv"
,并重启了服务器。
不确定我做错了什么。
index.html.erb
<a href="usage_metrics/export_data.csv"><button class="btn btn-default">Export to CSV</button></a>
usage_controller(前端)
def export_data
rest_resource = RestClient::Resource.new( ENV['USAGE_METRICS_API'] + '/get_events_data', :verify_ssl => false )
request = rest_resource.get :Authorization => cookies.signed[:remember_token], :content_type => 'application/json'
@events_data = JSON.parse(request)
respond_to do |format|
format.html
format.csv { send_data @events_data.to_csv }
end
end
def self.to_csv
CSV.generate do |csv|
csv << column_names
all.each do |event|
csv << event.attributes.values_at(*column_names)
end
end
end
答案 0 :(得分:0)
你的self.to_csv方法在控制器中没有意义
您需要将to_csv移至模型,该模型将数据序列化为csv
按照本教程实现:http://railscasts.com/episodes/362-exporting-csv-and-excel