我在lib
目录中有一个脚本,我需要获取一些数据。
require 'active_record'
Article.each do ...
当我尝试这个时,我收到了以下错误消息:
file.rb:3:in `<main>': uninitialized constant Article (NameError)
如何从Rails数据库加载数据并将其显示在原始ruby脚本中?
答案 0 :(得分:1)
在你的脚本中你应该添加适配器,如下所示:
require 'active_record'
require 'sqlite3'
ActiveRecord::Base.establish_connection(
:adapter => 'sqlite3',
:database => 'db/yourDb.db'
)
和模型,像这样:
require_relative 'path to your model(s) file(s)'
答案 1 :(得分:1)
您可以使用Rails应用程序根目录中的命令rails runner lib/your_script.rb
来执行脚本。它将在加载Rails环境后执行脚本,因此在脚本中您可以完全访问模型。
答案 2 :(得分:0)
请参阅rails doc以获取方法'establish_connection'
http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-establish_connection
答案 3 :(得分:-1)
这将帮助您将数据库与活动记录连接: http://www.runtime-era.com/2012/11/dynamic-activerecord-database.html