ruby - 如何避免 Nilclass 的未定义方法错误

标签 ruby

我使用 dbf gem 从 df 文件中读取数据。我写了一些代码:

    # encoding: UTF-8
    require 'dbf'
    widgets = DBF::Table.new("patient.dbf")
      widgets.each do |record|
       puts record.vorname
      end

基本上代码可以工作,但在 ruby​​ 将大约 400 record.vorname 写入控制台后,我收到此错误:

  ...
  Gisela
  G?nter
  mycode.rb:5:in `block in <main>': undefined method `vorname' for nil:NilClass (NoM
  ethodError)
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/dbf-2.0.6/lib/
    dbf/table.rb:101:in `block in each'
    ......

我的问题是如何避免这个错误?因此,为什么(您如何在错误中看到)带有 ä,ö,ü 的 record.vorname 显示为 ?,?,?例如:

Günter 转换为 G?nter

谢谢

最佳答案

出于某种原因,您的 DBF 驱动程序返回 nil 记录。你可以通过跳过这些来假装这个问题不存在。

widgets.each do |record|
  puts record.vorname if record
end

关于ruby - 如何避免 Nilclass 的未定义方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18892311/

相关文章:

ruby - XPath 选择 OOXML 中两个文本标记之间的所有节点?

ruby - 开发 gem 时,更新后是否必须继续安装?

ruby - 使用 Mechanize 和 nokogiri 使用正确的 xpath 抓取页面

ruby - 如何让 Ruby Dir#glob 返回基本名称,而不是绝对路径?

ruby - 要求 ruby​​gems 在 irb 中工作但在脚本中不工作

ruby - 如何为 Ubuntu 打包 Ruby 应用程序,包括它的 gem 依赖项?

Ruby 对象与 Fixnum 相当

ruby-on-rails - 未找到 gem 文件

ruby-on-rails - rails 引擎 : rake routes show its routes but on rspec execution "No route matches" is thrown

javascript - 制作像 Travis CI 构建状态一样的动态 SVG