Si se utiliza FasterCsv en bucle o en el código simplemente cambiar con Csv y funciona para mí. Elimina la gema 'fastercsv' del archivo gema. Simplemente escriba su código en el controlador, no es necesario agregar otro código en algún lugar de la configuración.
Este es el ejemplo de código incorrecto.
class HomeController < ApplicationController
require 'fastercsv'
def download_csv
@invitation = Invitation.find(params[:id])
@activities = Version.where("created_at >= ?", @invitation.created_at)
if params[:export]
csv_string = FasterCSV.generate do |csv|
# header row
csv << ["Date", "Event", "Details"]
@activities.each do |act|
csv << [act.created_at.strftime("%d-%m-%Y"), act.event, act.item_id]
end
end
timestamp = Time.now.strftime('%Y-%m-%d_%H:%M:%S')
send_data csv_string,
:type => 'text/csv; charset=iso-8859-1; header=present',
:disposition => "attachment; filename=goal_history_#{timestamp}.csv"
end
end
y simplemente se corrigió con el cambio de palabra FasterCsv a Csv y funciona. como a continuación
class HomeController < ApplicationController
require 'csv'
def download_csv
@invitation = Invitation.find(params[:id])
@activities = Version.where("created_at >= ?", @invitation.created_at)
if params[:export]
csv_string = CSV.generate do |csv|
# header row
csv << ["Date", "Event", "Details"]
@activities.each do |act|
csv << [act.created_at.strftime("%d-%m-%Y"), act.event, act.item_id]
end
end
timestamp = Time.now.strftime('%Y-%m-%d_%H:%M:%S')
send_data csv_string,
:type => 'text/csv; charset=iso-8859-1; header=present',
:disposition => "attachment; filename=goal_history_#{timestamp}.csv"
end
end
Tengo este error application.rb: 54: en 'requerir ': No existe el fichero a cargar - fastercsv (LoadError) – Anand
En realidad tengo un conjunto de requerir declaraciones en el application.rb para las gemas que se usan en la aplicación, uno de los cuales requiere 'fastercsv' en la línea 54. – Anand
No deberías poner requiere gemas en tu application.rb así. Usa bundler para configurar todas las gemas necesarias para tu proyecto ya que este es el nuevo método defacto para incluir gemas en un proyecto. – davydotcom