【发布时间】:2021-12-28 10:59:44
【问题描述】:
如果有更好的方法来询问这个问题,我们深表歉意。
我正在尝试将 User 数据导出到 .csv 文件,但在遍历数组时遇到问题。我在一列中获取整个数组的内容,而在以下列中没有任何内容。示例:
假设我有标题Company 和Country:
<% headers = [
... # some other headers
"Company",
"Country"
] %>
<%= CSV.generate_line(headers, row_sep:"", col_sep: ",") %>
然后我有一个字符串数组,其中包含Company 名称和Country 的用户值,我必须用正确的值填充文件中的相应列。
<% @user_preferences = ["Microsoft", "USA"] %>
我正在做类似的事情
<%= CSV.generate_line([
... # some other fields
@user_preferences.each do |value|
value
end
], row_sep:"", col_sep: ",").html_safe %>
但是,我没有在不同的列中获取每个 value,而是在第一列 (Company) 中获取 ["Microsoft", "USA"],而在 Country 列中没有任何内容。
我的理解是,它在进入迭代块之前用 @user_preferences 返回的任何内容填充第一列,而不是将每个 value 分配给单独的列。
我尝试使用哈希而不是数组,但在遍历它的键/值时得到相同的结果(我在同一列中得到两个值)。
有没有办法转义迭代并用正确的值填充每一列?
【问题讨论】:
-
“我正在尝试将用户数据导出到 .csv 文件” - 但您的代码看起来像是在尝试将 CSV 输出写入 HTML 模板。
-
是的,.csv 就像任何其他 html.erb 视图一样。但不是渲染它,而是给出下载提示。
标签: ruby-on-rails ruby loops csv export-to-csv