Загрузите файл в консоль rails с доступом к переменным, определенным в этом файле
Я работаю с консолью rails, и часто мне нужно предварительно загрузить некоторый код ruby для работы.
#file that i want to load in rails console
#my_file.rb
a = 1
b = 2
puts a + b
Когда я запускаю консоль с. / script/console
rails-console :001 > load 'my_file.rb'
3
=> []
rails-console :002 > a
NameError: undefined local variable or method 'a' for #<Object:123445>
Как я могу получить доступ к моим переменным 'a' и 'b' в консоли?
Ответы
Ответ 1
При загрузке файла локальные переменные выходят за пределы области после загрузки файла, поэтому a и b будут недоступны в консоли, которая загружает его.
Поскольку вы обрабатываете a и b как константы, как насчет их простого использования
A = 1
B = 2
puts A+B
Теперь в консоли вы сможете сделать следующее
load 'myfile.rb'
A #=> 1
В качестве альтернативы вы можете сделать переменные в myfile.rb global ($ a, $b)
Ответ 2
Прежде всего, вы должны использовать irbrc. Пожалуйста, прочитайте здесь, например.
Затем вы можете определить метод в вашем irbrc, чтобы высмеять ваши переменные:
def a
[1, 2, 4]
end
но я предпочитаю добавлять методы к определенным классам Ruby, например:
class Array
def self.toy(n=10,&block)
block_given? ? Array.new(n,&block) : Array.new(n) {|i| i+1}
end
end