Я застрял в двух вещах. Это структура моего файла.Метод, возвращающий список методов экземпляра
class Person
#...
def self.class_name (object)
object.class.name
end
end
class Worker < Person
#...
end
class Client < Person
#...
end
c = Client.new("1", "2", "3", "4")
Person.class_name(c)
Я хотел бы создать метод, где в качестве аргумента я могу поставить какой-нибудь предмет, и он обнаружит, какой класс является его и вернуть мне список всех методов экземпляра, которые не требуют каких-либо аргументов. Позже мне нужно как-то использовать все эти методы.
Я нашел это:
testObject.class.name
# returns name of class as a string
Class.instance_methods(false)
# returns list of instance method, which were defined in Class
Первая проблема, в том, что я не понимаю, почему я не могу сделать что-то вроде
className = testObject.class.name
className.instance_methods(false)
Я полагаю, что это потому, что я получил просто класс имя, как жало, а не настоящую ссылку на класс. Я даже создал простой метод class_name, который возвращает правильное имя класса, но мне интересно, как я могу использовать instance_methods(false)
, как только у меня есть это имя. Также есть ли возможность выбрать только методы, которые не требуют каких-либо аргументов?
Спасибо много! Вы, вероятно, самый быстрый человек, которого я когда-либо видел на любом форуме: D. –
@DanZawadzki добро пожаловать! Это просто совпадение, что я заметил ваш вопрос сразу после его создания: D –
Все работает отлично, но теперь я думаю о том, как «активировать» эти методы. Также вы можете посоветовать мне какой-нибудь хороший ресурс информации о ror? На данный момент я основываюсь на http://ruby-doc.org. Есть ли что-то еще, что я могу использовать? –