在Rails控制台中运行脚本并可以访问创建的对象?

Dan*_*ron 11 ruby-on-rails rails-console ruby-on-rails-4

我最近发现你可以使用load或require在Rails控制台中运行任意Ruby文件,如下所示:

load 'test_code.rb'
Run Code Online (Sandbox Code Playgroud)

这是很好的,但使用load或require(有什么区别?)我似乎无法访问脚本完成后在脚本中创建的对象.

例如,在我的脚本中,我可能有类似的东西:

u = User.where('last_name = ?', 'Spock').first
Run Code Online (Sandbox Code Playgroud)

如果我启动rails console并使用load或require运行该脚本,我看到它正常工作,我看到查询发生了,我可以在脚本中"放置"对象的属性,并在控制台输出中查看它们.但是一旦脚本完成,变量u就是未定义的.

我想运行一些代码来设置一些对象,然后以交互方式探索它们.可以这样做吗?我做错了什么或遗漏了一些明显的东西?

ush*_*sha 10

加载文件后,脚本中定义的变量将超出范围.如果要在控制台中使用变量,请将它们定义为实例变量或常量

@u = User.where('last_name = ?', 'Spock').first
Run Code Online (Sandbox Code Playgroud)

要么

USER = User.where('last_name = ?', 'Spock').first
Run Code Online (Sandbox Code Playgroud)