Есть ли способ определить метод для экземпляра класса в консоли?Определить метод класса (экземпляра) в консоли rails
например.
def Model.old?
self.created_at < Time.now - 35.years
end
А затем запустить его с
Model.find(1).old?
Есть ли способ определить метод для экземпляра класса в консоли?Определить метод класса (экземпляра) в консоли rails
например.
def Model.old?
self.created_at < Time.now - 35.years
end
А затем запустить его с
Model.find(1).old?
На основе кода, при условии, что это должно быть то, что вы хотите:
class Model
def old?
created_at < 35.years.ago
end
end
Вам просто нужно ввести каждую строку в консоль по одному.
P.S. - Ваша логика сравнения обратная, поэтому я перевернул ее назад.
Хорошо заметили :) – Carpela
Должен быть способ открыть класс, как обычно. –
Не уверен, что вы имеете в виду. Я хочу определить метод, который я тестирую, не входя в класс, перезагружая или (что важно) потерять бит данных, с которыми я работал. Но я хочу определить, как вести себя так, как если бы он уже был определен против модели. – Carpela
Открытие класса не перезагружает класс AFAIK. Вы пытаетесь добавить метод экземпляра, а не конкретный экземпляр, и я не вижу причин, по которым вы не могли этого сделать. Вы говорите, что обычное открытие класса Ruby не работает? –