My Rails 3.2 app使用两个不同的数据库。主os是MySQL,而oher是sqlserver DB:
development:
adapter: mysql2
encoding: utf8
database: mydb
username: myuser
password: ***
secondbase:
adapter: sqlserver
database: anotherbase
username: anotheruser
password: ***
我有两个相关的模型:
class Account < ActiveRecord::Base
establish_connection :secondbase
has_many :docs
end
class Docs < ActiveRecord::Base
belongs_to :account
end
由于两个模型在两个不同数据库上使用表,我想我不能使用eager_loading并使用join
或includes
但我认为preload
仍然允许我使用两个查询(而不是N + 1)加载数据
但是,在我的控制器中尝试使用preload
时,会引发错误:
Docs.where(someconditions).preload(:account)
返回
Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USE [anotherbase]
如果在我的视图中使用帐户详细信息显示文档,我该如何预加载帐户数据并避免N + 1次查询?