0

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

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”

有什么解决办法吗?谢谢!

4

1 回答 1

1

您可以使用以下代码来完成

def find_existing(some_model)
  existing_one = some_model.class.find(some_model.id)
end
于 2011-11-13T15:12:28.250 回答