2016-09-26 33 views
0

如何在IRB会话中加载ActiveRecord在IRB上需要ActiveRecord - Ruby(NO Rails)

我有以下

# config/app.rb 
require 'active_record' 

ActiveRecord::Base.establish_connection(
    adapter: 'sqlite3', 
    database: 'db/mydb.sqlite3' 
) 

但是当我开始IRB并尝试加载它

irb#1(main):001:0> require config/application.rb 

我得到

NameError: undefined local variable or method `config' for main:Object 
Did you mean? conf 

我希望能够互动与来自IRB的ActiveRecord对象一起使用。 我不使用Rails,但只使用ActiveRecord。

感谢

回答

5

两件事情改变这里:

  1. 始终把引号你需要的路径周围。 Ruby说“未定义的局部变量或方法”的原因是它试图将config解释为变量名称。把名字放在引号中,它不会。
  2. 使用require_relative加载属于您的应用程序的文件时。 require只会在默认的Ruby加载路径中查找。

试试这个:

require_relative 'config/application.rb' 
0

您可以使用pry建立一个控制台命令行启动。简单的控制台解决方案这样,每当你盯着交互式会话时,你不需要用irb。

# bin/console 
#!/usr/bin/env ruby 
require_relative '../config/app.rb' 
require 'pry' 
binding.pry 

更多撬https://github.com/pry/pry

附:你应该设置+ X斌/控制台上,即

$ chmod +x bin/console 

然后你只需要调用

$ bin/console 

,并从配置/ app.rb和互动会议准备的所有代码的运行。无需从irb请求任何开始工作。

穷人的轨道控制台equiv。 :-)