Ruby CSV如何返回nil而不是undefined方法错误?

时间:2014-06-11 11:29:46

标签: ruby csv undefined null

 csv_content = CSV.generate do |csv|
      csv << [
        "Bus number",
        "Bus name",
        "Bus Driver Name",
      ]

      @buses.each do |bus|
        csv << [
          bus.number,
          bus.name,
          bus.driver.name
        ]
        end
    end

以下是生成csv内容的代码段, 但是,如果bus.driver为nil,则bus.driver.name将抛出nil类错误。 我怎么能返回nil呢? 我们怎样才能更优雅呢?

1 个答案:

答案 0 :(得分:2)

如果您使用的是Rails(或Active Support):

bus.driver.try(:name)

如果没有,请自行添加:

class Object
  alias :try :send
end
class NilClass
  def try(method); end
end