【发布时间】:2016-05-17 20:12:04
【问题描述】:
我正在尝试将外部 MySQL 数据库连接到 Rails 4 并从那里读取数据。所以到目前为止我做了什么:
- 在
lib/primo_db.rb中创建 - 创建模型
models/accountstatus.rb
primo_db.rb
require 'active_record'
require 'mysql'
class PrimoDatabase < ActiveRecord::Base
self.abstract_class = true
establish_connection(
:adapter => 'mysql',
:database => '...',
:host => '...',
:username => '...',
:password => '...'
)
end
account.rb
require 'primo_database'
class Account < PrimoDatabase
self.table_name = 'account'
def self.getdata
end
end
我的问题是:
如何在控制台中测试它们之间的连接,因为当我在 Rails 控制台中运行
Accountstatus.getdata时,我收到此错误NameError: uninitialized constant PrimoDatabase如果我运行
ActiveRecod::Base.connection?,它会返回false
我知道我做错了什么,因此我将不胜感激。
已编辑 - 查看答案以了解我在下面做了什么
【问题讨论】:
-
尝试将您的
primo_db.rb文件重命名为primo_database.rb,以便文件名和在其上定义的类具有相同的名称 -
您是否在某处需要
lib/primo_db? -
@Bustkiller 当我重命名文件夹时,它没有帮助,同样的错误..@spickermann 我尝试了,当我输入
Accountstatus.getdata=>nil时我没有收到错误但是当我试图找到仍然错误的东西时:不存在:SELECTaccountstatuses.* FROMaccountstatuses -
然后呢?您的数据库中是否存在名为
accountstatuses的表? -
这不是我真正想要的......不想使用本地只是能够从外部 mysql db 读取数据
标签: mysql ruby-on-rails ruby ruby-on-rails-4