基于记录类型的ruby调用方法

时间:2016-08-09 21:10:42

标签: ruby

我的车型上有以下方法,如下所示:

class Vehicle < ActiveRecord::Base
  def get_history(start_time, end_time)
    #...
  end

  def gsm_get_history(start_time, end_time)
    #...
  end
end
整个代码库都在调用

get_history,我定义的gsm_get_history方法非常相似,接受相同的参数。

如何在不更改代码库中此方法调用的每个实例的情况下继续调用get_history?仅当车辆上的通信渠道为gsm_get_history

时,才拨打:gsm

2 个答案:

答案 0 :(得分:1)

ClassLoader更改为:

get_history

答案 1 :(得分:0)

你可以短路get_history方法

def get_history(start_time, end_time)
  if communication_channel == :gsm
    return gsm_get_history(start_time, end_time)
  end

  # ...
end