在ruby中给出一个实例调用一个类方法

时间:2011-11-13 14:53:07

标签: ruby-on-rails ruby activemodel

我正在使用rails ActiveModel,我定义了两个这样的方法:

def find_existing_task(task)
  existing_one = Task.find(task.id)
end
def find_existing_person(person)
  existing_one = People.find(person.id)
end

但我认为我需要一个更通用的方法:

def find_existing(any_active_model_instance_with_id)
  existing_one = ActiveModelClass.find(any_active_model_instance_with_id.id)
end

但我不知道如何调用给定实例的类方法,在上面,给定任务,我可以调用Task.find而不指定类名“Task”

任何解决方案?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码

执行此操作
def find_existing(some_model)
  existing_one = some_model.class.find(some_model.id)
end