在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。
谢谢
这里要改变两件事:
- 始终在您需要的路径上放置引号。 Ruby说“未定义的局部变量或方法”的原因是它试图将
config
解释为变量名。 将名称放在引号中,它不会。 - 在加载属于应用程序的文件时使用
require_relative
。require
只查看默认的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开始工作。
穷人的轨道控制台相当于 🙂