Answer the question
In order to leave comments, you need to log in
How to find out the parameters of the next method in the chain?
class A
def method1
self
end
def method2(value)
value
end
end
p A.method1
p A.method1.method2(10)
Answer the question
In order to leave comments, you need to log in
Ваш пример, во-первых не работает, т.к. методы вы сделали не классовыми(нужно self.method), во вторых второй метод будет срабатывать к значению, который вернет первый метод, допустим это будет число, тогда второй метод будет срабатывать к классу Integer, и выйдет ошибка нет такого метода2 для класса Integer. Выход использовать технику monkey patching. Не думаю, что это хорошая идея для вашего примера, т.к то, что вы хочете уже реализовано в Active Record, что мешает вам сделать например так User.first(10) например, можно и по другому . Просто научитесь правилтно составлять запросы в гугл, поверьте там все есть по вашей теме
AR (собственно, в данном случае, гем Arel) формирует SQL, который уже и будет отдан базе. А 100 или 10 объектов будет возвращено уже зависит от сформированного запроса.
То, что вы предлагаете реализовать бессмысленно.
Хотя и возможно. Просто при вызове каждого метода нужно сохранять его значение в переменной инстанса, например. Нет (по крайней мере, никто не использует) каких-либо "цепочек вызова предыдущих методов на уровне Ruby".
И, кстати, то, что вы описали, больше подходит под Aspect Oriented Programming
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question