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

如何在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。

谢谢

这里要改变两件事:

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

试试这个:

  require_relative 'config/application.rb' 

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

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

更多关于pry https://github.com/pry/pry

PS你应该在bin / console上设置+ x,即

 $ chmod +x bin/console 

然后你就打电话

 $ bin/console 

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

穷人的轨道控制台相当于 🙂