【发布时间】:2011-05-10 16:28:53
【问题描述】:
我在 Ruby on Rails 应用程序上使用 FasterCSV,目前如果文件无效,它会引发异常。
我查看了FasterCSV doc,似乎如果我将FasterCSV::parse 与块一起使用,它会一次读取一行文件,而不会分配太多内存。如果文件有任何类型的错误,它会抛出FasterCSV::MalformedCSV 异常。
我已经实现了一个自定义解决方案,但我不确定它是否是最好的解决方案(请参阅下面的答案)。我有兴趣了解替代方案
【问题讨论】:
-
两个变化:1) 你需要
def self.is_valid?2) 删除多余的return调用。发布为评论而不是答案,因为您基本上已经有了这个答案,我不想阻止其他答案。我建议您应该从问题中删除自己的代码,并在一段时间后将其作为答案发布。 -
感谢您的 cmets!我已经修复了我的代码(当它不在方法的末尾时,我更喜欢明确地返回)
-
@egarcia
begin; parse{ ... }; true; rescue; false; end怎么样@ -
@Phrogz 作为一名红宝石爱好者,我是单行字的忠实粉丝。但是......请不要误会,但我真的不喜欢分号业务。在这种特殊情况下,我想我宁愿明确说明正在发生的事情,即使该方法跨越了几行。
-
@egarcia 要清楚,分号只是因为我不能在 cmets 中输入换行符。无论如何,只是对我认为更像 Ruby 的代码的建议。
标签: ruby-on-rails ruby csv fastercsv