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