0
にインスタンス与えられたクラスメソッド私はレールに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を呼び出すことができます
すべての解決策はありますか?ありがとう!
でそれを行うことができますTasksControllerなので、self.classはTasksControllerですか? – aaron
と、TaskとTasksControllerのどちらにもメソッドを定義しないとどうなりますか? – aaron
@aaron私の答えは、それがモデルやコントローラ内から呼び出されないかもしれないことを反映しています。あなたは何をしようとしているのですか? 'show'、' edit'、 'update'、' delete'アクションのためにあなたのコントローラーでレコードを取得しようとしていますか?あなたが達成しようとしていることを知るのに役立ちます。より良い方法があるかもしれません。 –