如何从/ lib目录中的脚本连接到数据库?

时间:2013-05-30 12:46:55

标签: ruby-on-rails ruby database activerecord

我在lib目录中有一个脚本,我需要获取一些数据。

require 'active_record'

Article.each do ...

当我尝试这个时,我收到了以下错误消息:

file.rb:3:in `<main>': uninitialized constant Article (NameError)

如何从Rails数据库加载数据并将其显示在原始ruby脚本中?

4 个答案:

答案 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