CSV.open(..)块不执行,并立即结束

时间:2011-11-03 18:31:19

标签: ruby-on-rails ruby

我正在使用以下代码打开CSV文件进行编写,如CSV文档中所示(http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV.html):

CSV.open( csv_file_out, 'wb' ) { |csv_line_out|

  #stuff happens here

}

该块不执行,即在CSV.open命令调试器直接进入块结束之后。

思考“以防万一”,我尝试使用IO模式w+b wt w+t ab a+b。我也尝试过创建文件,万一打开它时出现问题。没有什么变化。

当我在CSV.open行停止调试器时,我能够手动执行一个块并自己创建一个csv文件。我也可以从控制台创建文件frmo完全相同的命令。但它在服务器中执行时不起作用。

任何有关正在发生的事情的想法都非常受欢迎。提前谢谢!

2 个答案:

答案 0 :(得分:0)

您的 |csv_line_out| 之前不需要 {} 括号

答案 1 :(得分:-1)

你试图迭代某事。 (文件内容)不存在所以它的逻辑结束imediatly!试试这种方式:

CSV.open(csv_file_out, "wb") do |csv|
     csv << [column1, column2,...]
end