如何从ruby中的不同类调用方法

时间:2016-01-28 09:09:20

标签: ruby

您好我是ruby的新手并且最近开始学习相同的内容。我写下了ruby程序,该程序运行良好。

但是这个程序都写在一个文件中。我希望将每个类放在一个不同的文件中,并使用一个文件来执行all.ie,就像我们在java中一样。[启动程序的一个主要方法]如何我可以像这样运行这个程序。

当我尝试将每个类保存在单个文件中并尝试执行相同时,它开始给出错误,例如找不到方法。

class Vehical
  attr_accessor :odometer      
  attr_accessor :gas_used      
  def accelrate
    puts " Floor It"
  end

  def sound_horn
    puts "Beep! Beep!"
  end

  def steer
    puts "Turn front 2 wheels"
  end

  def mileage
    @odometer /@gas_used
  end
end

class Truck < Vehical
end

class Motercycle < Vehical
end


class Car < Vehical
end    

truck = Truck.new    
truck.steer
car = Car.new
car.odometer = 11432
car.gas_used = 366
puts "Lifetime MPG:"
puts car.mileage

1 个答案:

答案 0 :(得分:3)

以下是几个选项:

  1. 使用require_relative将这些文件加载​​到主文件中。

    require_relative "vehical"
    require_relative "truck"
    require_relative "motor_cycle"
    require_relative "car"
    
  2. 在主文件中使用$:.unshift File.dirname(__FILE__)将其位置添加到Ruby加载路径,并在主文件中使用require "dependent-file-name-without-extension"

    $:.unshift File.dirname(__FILE__)
    require "vehical"
    require "truck"
    require "motor_cycle"
    require "car"
    
  3. 运行程序时使用-I <folder>。示例:ruby -I . main.rb

      

    -Idirectory指定$ LOAD_PATH目录(可以多次使用)