将方法从一个类调用到另一个类

时间:2016-06-16 09:57:53

标签: ruby-on-rails

在PilotRaceLap模型类中,我试图从另一个类调用一个方法,但继续获取NoMethodError

class PilotRaceLap < ActiveRecord::Base
 acts_as_paranoid
  belongs_to :race_session

 def mark_splitted
  prl = RaceSessionAdapter.track_lap_time(pilot.transponder_token,lap_time/2) <<<ERROR HERE
 end

track_lap_time在此适配器类中声明:

class RaceSessionAdapter
 attr_accessor :race_session

def track_lap_time(transponder_token,delta_time_in_ms)
 ...
end

race_session模型类就是这样开始的:

class RaceSession < ActiveRecord::Base
 acts_as_paranoid

 has_many :pilot_race_laps
 has_many :race_attendees

2 个答案:

答案 0 :(得分:1)

track_lap_time应该是一个类方法(它现在是实例方法)。只需在名称前添加self.

def self.track_lap_time()
  ...
end

或在class << self

中编写此方法
class << self
  def track_lap_time()
    ...
  end
end

答案 1 :(得分:0)

使用RaceSessionAdapter.new.track_lap_time()