Sinatra 显示 CSV 条目
Sinatra Display CSV entries
如何将 csv 文件中的数据显示到 Sinatra 应用程序中?
Sinatra:
csv = CSV.read(data.csv)
csv.each do |entry|
@output = "#{entry[1]},#{entry[4]}:#{entry[0]}"
end
Erb:
<%= @data %>
只显示 csv 文件的最后一行。
问题
使用此代码:
csv = CSV.read(data.csv)
csv.each do |entry|
@output = "#{entry[1]},#{entry[4]}:#{entry[0]}"
end
您遍历所有 csv 行。
对于每一行,块定义 @output
变量。
在第一个 csv 行之后,代码继续覆盖 @output_variable
。
可能的解决方案
csv = CSV.read(data.csv)
@data = csv.map do |entry|
"#{entry[1]},#{entry[4]}:#{entry[0]}"
end
然后您可以使用
<%= @data %>
在您看来。 @data
现在是一个字符串数组,每个 csv 行一个字符串。
您可能想将 for
循环移动到模板文件。
在西纳特拉
@csv_data = CSV.read(data.csv)
在 erb
<% @csv_data.each do |entry| %>
<%= entry[1] %>,<%= entry[4] %>:<%= entry[0] %>
<% end %>
如何将 csv 文件中的数据显示到 Sinatra 应用程序中?
Sinatra:
csv = CSV.read(data.csv)
csv.each do |entry|
@output = "#{entry[1]},#{entry[4]}:#{entry[0]}"
end
Erb:
<%= @data %>
只显示 csv 文件的最后一行。
问题
使用此代码:
csv = CSV.read(data.csv)
csv.each do |entry|
@output = "#{entry[1]},#{entry[4]}:#{entry[0]}"
end
您遍历所有 csv 行。
对于每一行,块定义 @output
变量。
在第一个 csv 行之后,代码继续覆盖 @output_variable
。
可能的解决方案
csv = CSV.read(data.csv)
@data = csv.map do |entry|
"#{entry[1]},#{entry[4]}:#{entry[0]}"
end
然后您可以使用
<%= @data %>
在您看来。 @data
现在是一个字符串数组,每个 csv 行一个字符串。
您可能想将 for
循环移动到模板文件。
在西纳特拉
@csv_data = CSV.read(data.csv)
在 erb
<% @csv_data.each do |entry| %>
<%= entry[1] %>,<%= entry[4] %>:<%= entry[0] %>
<% end %>