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 を呼び出すことができます

解決策はありますか?ありがとう!

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 に答える