我有一个使用两种不同类型数据库的 rails 应用程序:sqlite3 和 mysql2。
我做了一些搜索并设法做到了这一点,我的 database.yml 文件如下所示:
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
mysql2_development:
adapter: mysql2
database: db_name
username: user_name
password: pass_word
host: somehost.net
port: 3306
socket: /tmp/mysql.sock
我在模型中创建了以下类来访问我的 Mysql2 数据库:
class NewDB < ActiveRecord::Base
# To change this template use File | Settings | File Templates.
self.abstract_class = true
establish_connection "mysql2_#{Rails.env}"
end
class PROJECT < NewDB
end
这里 PROJECT 是“NewDB”数据库中存在的表。
问题:
这是正确的方法吗,我如何从控制器访问它们?
在我的控制器中,我尝试了这个:
class NewDBController < ApplicationController
def index
@projects=PROJECT.all
end
end
但我收到以下错误“Mysql2::Error: Table 'newdb.projects' doesn't exist: SHOW FULL FIELDS FROM projects
”