在IRB上需要ActiveRecord - Ruby(NO Rails)

时间:2016-09-26 03:48:39

标签: ruby activerecord

如何在IRB会话中加载ActiveRecord

我有以下

# 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。

谢谢

2 个答案:

答案 0 :(得分:6)

这里要改变两件事:

  1. 始终在您要求的路径上加上引号。 Ruby之所以说"未定义的局部变量或方法"是因为它试图将config解释为变量名。将名称放在引号中,它就赢了。
  2. 加载属于您的应用程序的文件时使用require_relativerequire仅查看默认的Ruby加载路径。
  3. 试试这个:

        require_relative 'config/application.rb'
    

答案 1 :(得分:1)

您可以使用pry构建从命令行启动的控制台。简单的控制台解决方案这样,每次你凝视交互式会话时,你都不必要求irb。

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

有关pry https://github.com/pry/pry

的更多信息

P.S。你应该在bin / console上设置+ x,即

$ chmod +x bin/console

然后你打电话

$ bin/console 

并从config / app.rb和交互式会话准备好运行所有代码。无需从irb开始工作。

穷人的轨道控制台相当于: - )