1
私はCSV Export in Rails Appを行っています。 データはバックエンドAPIからJSON配列として返されます。 しかし、今は、export_dataメソッドに"undefined method 'to_csv' for #Hash:0x007f149a5ff978"
というエラーが表示されています。Rails - CSVが期待どおりに動作しない(未定義のメソッド)
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
'all.each'?すべて何ですか? – xeon131
あなたの 'self.to_csv'メソッドは、コントローラではなく、モデルに含まれることを意図しています。たとえそれを正しく呼び出すとしても、あなたが実際に使っているJSONオブジェクトには適していません。 '@ events_data' JSONオブジェクトをCSVに変換するカスタムのシリアライズを書く必要があります。 –
私のアプリケーションでは、フロントエンドにモデルロジックがなく、バックエンドから来るはずです。 – Wings2fly