Ich versuche zum ersten Mal verwenden .to_csv, und ich erhalte die Fehlermeldung undefined method 'to_csv' for #<Datum::ActiveRecord_Relation:0x007fd101f32f08> Did you mean? to_s
nicht definierte Methode `to_csv‘ Rails 5
ich mich umsah habe, und ich bin nicht sicher, ob es mein Code ist oder .to_csv
ist nicht kompatibel mit Rails 5 (5.0.6 um genau zu sein)? Das Endziel ist, dass der Benutzer alle Datum-Daten auf der aktuellen Batch-Show-Seite herunterladen kann.
Alle Zeiger wären großartig!
application.rb
require File.expand_path('../boot', __FILE__)
require 'csv'
require 'uri'
require 'net/http'
require 'rails/all'
models/batch.rb
class Batch < ApplicationRecord
belongs_to :user
def self.to_csv
CSV.generate do |csv|
csv << column_names
all.each do |datum|
csv << datum.attributes.values_at(*column_names)
end
end
end
end
batches_controller.rb
def show
batch_id = params[:id]
@batch_name = Batch.find(batch_id).name
@data = Datum.where(batch_id: batch_id)
respond_to do |format|
format.html
format.csv { send_data @data.to_csv }
end
end
views/Chargen/show.html.erb
<%= link_to "CSV", batch_path(@batch, format: "csv") %>
Sie haben to_csv im Batch definiert, aber Sie rufen es auf Datum an. Du hast diese Klasse nicht gepostet, ist sie dort definiert? –
@JacobVanus Heilige Guacamole, das ist es. Ich dachte, ich müsste auf Batches deklarieren, da ich es so nannte. Vielen Dank! – gwalshington
@JacobVanus, die es behoben - wenn Sie als Lösung veröffentlichen möchten, werde ich akzeptieren – gwalshington