2016-09-26 41 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。 :-)