假设我有一些ActiveRecord find_by_sql调用返回的数据。为一个查询返回的数据如下所示:
id UserId City State Zip Country Email Phone Age 1 fred Atlanta GA 300909 null me@me.com null 35 2 Sue New York NY 99801 null Sue@me.com null 38 3 Bill Dallas TX 87654 null bill@me.com null 25
然后,我有另一个包含这些值的数据集:
id UserId City State Zip Country Email Phone Age 4 fred null GA 300909 null null 555-1212 null 5 Sue null NY 99801 null null 555-1213 null 6 Bill null TX 87654 null null 888-2121 null
因为我们有可选字段,所以我们不知道每个方案将填充哪些数据。我希望能够在页面上列出我有数据的所有字段,而不是为每个方案显示空列。为了这个例子,假设第一行中的任何值都将填充该数据集中的其余行。作为旁注,我还需要将这些值导出为csv,并且不希望其中存在空值。我搜索并搜索过,并没有想出来。我确信必须有一种方法可以在Ruby中实现这一点。任何帮助将不胜感激。
答案 0 :(得分:0)
如果你没有很多记录,你可以在ruby中轻松完成。如果你有足够的记录,那么它可能会变慢,你可能需要更多地使用数据库来检查空字段。以下是如何在ruby中执行此操作的基本要点。
@records = Record.find_by_sql('crazy_sql_here')
if @records.any? { |record| record.email.present? }
# Display row and heading
end
根据您用于将数据导出为CSV的库,您应该能够设置要使用的列。如果没有任何记录,请跳过国家或电子邮件字段。