将文件加载到rails控制台,可以访问此文件中定义的变量

Vla*_*nov 14 ruby console ruby-on-rails irb

我使用rails控制台,我经常需要预加载一些ruby代码才能使用.

#file that i want to load in rails console
#my_file.rb
a = 1
b = 2
puts a + b 
Run Code Online (Sandbox Code Playgroud)

当我使用./script/console运行我的控制台时

rails-console :001 > load 'my_file.rb' 
3
 => []
rails-console :002 > a
NameError: undefined local variable or method 'a' for #<Object:123445>
Run Code Online (Sandbox Code Playgroud)

如何在控制台中访问我的'a'和'b'变量?

Moi*_*aja 17

当您加载文件时,本地变量在加载文件后超出范围,这就是为什么a和b在加载它的控制台中不可用的原因.

既然你将a和b视为常数,那么只需将它们大写

A = 1
B = 2
puts A+B
Run Code Online (Sandbox Code Playgroud)

现在在您的控制台中,您应该能够执行以下操作

load 'myfile.rb'
A #=> 1
Run Code Online (Sandbox Code Playgroud)

或者你可以在myfile.rb中创建变量global($ a,$ b)

  • 你也可以在这个文件中访问像@a和@b这样的变种,并在irb控制台中使用它们:-) (2认同)