最近我发现你可以在Rails控制台中使用load或require运行任意Ruby文件,例如:
load 'test_code.rb'
这个内容在一定程度上很棒,但是使用load或require(有什么区别?)后,我似乎无法访问脚本完成后创建的对象。
例如,在我的脚本中,我可能会有这样的代码:
u = User.where('last_name = ?', 'Spock').first
如果我在rails console中使用load或require运行该脚本,我可以看到它正在工作,我可以看到查询发生,我可以使用在脚本中的对象属性并将它们放入控制台输出中。但是一旦脚本完成,变量u就未定义了。
我想运行一些代码来设置一些对象,然后交互式地探索它们。这个能做到吗?我是否做错了什么或者漏了什么明显的东西?
load
会在每次调用时包含并执行文件中的代码,而require
仅会在执行线程中包含一次。 - Jon