我正在使用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”
任何解决方案?谢谢!
答案 0 :(得分:1)
您可以使用以下代码
执行此操作def find_existing(some_model)
existing_one = some_model.class.find(some_model.id)
end