Ruby 西纳特拉没有';我不提供任何输出
我最近开始和西纳特拉混在一起,我遇到了一些我不能完全理解的事情Ruby 西纳特拉没有';我不提供任何输出,ruby,sinatra,Ruby,Sinatra,我最近开始和西纳特拉混在一起,我遇到了一些我不能完全理解的事情 get '/lnb/:date' do CSV.foreach("/home/dlind/code/noak/lnb/#{params[:date]}_lnb.csv") do |post| "#{post}" end end 访问http://localhost/lnb/2013-11-23例如。谁能解释一下为什么会这样 问候, David发生这种情况是因为CSV.foreach返回nil值 尝试
get '/lnb/:date' do
CSV.foreach("/home/dlind/code/noak/lnb/#{params[:date]}_lnb.csv") do |post|
"#{post}"
end
end
访问http://localhost/lnb/2013-11-23
例如。谁能解释一下为什么会这样
问候,
David发生这种情况是因为
CSV.foreach
返回nil
值
尝试
CSV.read(“文件”)
。这将返回一个包含文件值的数组。正如Thiago所说,您将从CSV.foreach方法中获得一个nil值
另一种选择
get '/lnb/:date' do
my_output = String.new
CSV.foreach("/home/dlind/code/noak/lnb/#{params[:date]}_lnb.csv") do |post|
my_output << "#{post}\n"
end
my_output
end
get'/lnb/:date'do
my_output=String.new
foreach(“/home/dlind/code/noak/lnb/#{params[:date]}{u lnb.CSV”)do|post|
my_输出关于如何以惯用、干净的方式迭代这个数组的任何提示?你是什么意思?您可以像使用任何其他数组一样使用每个方法遍历该数组。好吧,像这样迭代:@posts=CSV.read(“file”)@posts.each do | post | post[0]
呈现错误:未定义的方法“bytesize”for#
。我想我做错了确切地说,你想打印什么?第一列?选择第一列并连接值:@posts.map{| post | post[0]}.join(',')