【发布时间】:2023-04-08 10:51:02
【问题描述】:
有没有办法在控制台中为类实例定义方法?
例如
def Model.old?
self.created_at < Time.now - 35.years
end
然后运行它
Model.find(1).old?
【问题讨论】:
-
应该可以正常开课了。
-
不确定你的意思。我想定义一个我正在测试的方法,而无需进入类、重新加载或(重要的是)丢失我一直在摆弄的一些数据。但我想定义该方法的行为,就好像它已经针对模型定义了一样。
-
打开一个类不会重新加载该类,AFAIK。您正在尝试添加实例方法,而不是特定实例,我看不出您有任何不能这样做的原因。你是说使用普通的 Ruby 类打开不起作用?
-
好吧,我刚才写的上面没有用....
-
嗯,不,我认为如果有的话,那会添加一个类方法。你会想要
class Model; def old?; (your code); end; end或其他东西。例如,rubylearning.com/satishtalim/ruby_open_classes.html 或其他任何教程。
标签: ruby-on-rails ruby class methods