Одно замечание: instance_methods
принимает необязательный логический параметр, указывающий, хотите ли вы видеть методы предков экземпляров. В вашем случае я думаю, что вы хотите instance_methods(true)
.
Однако, похоже, что "build" - это автоматически сгенерированный метод, согласно документации . Обычно автоматически генерируемые методы в ActiveRecord реализуются путем переопределения method_missing
и обработки вызовов «методов», которые на самом деле не существуют. responds_to
также переопределяется, так что класс будет указывать, что он отвечает на правильные вызовы. Однако, поскольку эти «методы» на самом деле не определены, они не будут отображаться в списке instance_methods
.
Поскольку список команд, которые класс может respond_to
использовать method_missing
, по существу бесконечен, я почти уверен, что нет способа получить этот список. Например, модель ActiveRecord, имеющая атрибуты a, b, c и d, будет автоматически отвечать на вызовы, такие как find_by_a_and_b
и find_by_a_b_and_c
и find_by_b_and_d
и т. Д., До бесконечности. Нет способа получить список всех этих возможностей.