Ruby on rails 导出为CSV的Rails缺少逗号分隔符

Ruby on rails 导出为CSV的Rails缺少逗号分隔符,ruby-on-rails,export-to-csv,Ruby On Rails,Export To Csv,我正在将自定义数组导出到csv文件。所有内容都正确导出,但是它没有在每个实例之间添加逗号分隔符。我的代码中缺少了什么来添加此分隔 数据服务\u控制器 def export_all @list = DataService.all respond_to do |format| format.csv { render text: @list.to_csv } end end 数据服务.rb def self.to_csv CSV.generate do |csv| csv &l

我正在将自定义数组导出到csv文件。所有内容都正确导出,但是它没有在每个实例之间添加逗号分隔符。我的代码中缺少了什么来添加此分隔

数据服务\u控制器

def export_all
 @list = DataService.all
  respond_to do |format|
  format.csv { render text: @list.to_csv }
end
end
数据服务.rb

def self.to_csv
  CSV.generate do |csv|
    csv << ["Data Product", "Requestor"]
  all.each do |dp|
    csv << [dp.name ,dp.requestor]
  end
end
end
<%= link_to "Export to CSV", export_all_data_services_path(:format => :csv), :class => "btn btn-primary" %>
def self.to_csv
CSV.generate do | CSV|
csv

@list.to\u csv正在对dataservice.all返回的关系调用to\u csv方法,而不是您定义的类方法

format.csv { render text: DataService.to_csv }

调用您的csv类方法。您不需要@list实例变量

@list.to_csv正在对dataservice.all返回的关系调用to_csv方法,而不是您定义的类方法

format.csv { render text: DataService.to_csv }

调用您的csv类方法。您不需要@list实例变量

我注意到在控制器中调用了一个错误的方法,您不能使用实例变量调用class方法。您可以按照以下方式重写控制器操作,并使用
发送数据
而不是
渲染文本

def export_all
    respond_to do |format|
     format.csv { send_data DataService.to_csv }
    end
end

您已经将
中的所有数据服务迭代到了\u csv
方法中,所以我不需要您在
导出\u all
操作中进行查询。如果您想使用
@list
任何其他用途,那么您可以使用它。

我注意到控制器中有一个错误的方法调用,您不能使用实例变量调用class方法。您可以按照以下方式重写控制器操作,并使用
发送数据
而不是
渲染文本

def export_all
    respond_to do |format|
     format.csv { send_data DataService.to_csv }
    end
end
您已经将
中的所有数据服务迭代到了\u csv
方法中,所以我不需要您在
导出\u all
操作中进行查询。如果您想使用
@list
任何其他用途,则可以使用此功能