ruby-on-rails – Rails 3 – 具有连接条件的多个数据库
发布时间:2020-12-16 19:42:50 所属栏目:百科 来源:网络整理
导读:我的环境: Ruby 1.9.2p290,Rails 3.0.9和RubyGem 1.8.8 不幸的是,当遇到多个数据库时,我有一个问题. 情况是这样的:我有两个模型连接两个不同的数据库,并建立彼此之间的关联. 数据库连接在每个模型中指定,看起来像 class Visit ActiveRecord::Base self.est
我的环境:
Ruby 1.9.2p290,Rails 3.0.9和RubyGem 1.8.8
不幸的是,当遇到多个数据库时,我有一个问题. 情况是这样的:我有两个模型连接两个不同的数据库,并建立彼此之间的关联. class Visit < ActiveRecord::Base self.establish_connection "lab" belongs_to :patient end class Patient < ActiveRecord::Base self.establish_connection "main" has_many :visits end 遇到以下情况时,我收到错误 @visits = Visit.joins(:patient) 错误:Mysql2 ::错误:表’lab.patients’不存在:SELECT访问* FROM访问INNER JOIN患者ON patients.id IS NULL 这里’病人’表是’主’数据库和’实验室’数据库中的“访问”表 解决方法
那么,我不知道这是否是最优雅的解决方案,但是我已经通过定义self.table_name_prefix来明确地返回数据库名称.
class Visit < ActiveRecord::Base def self.table_name_prefix renv = ENV['RAILS_ENV'] || ENV['RACK_ENV'] (renv.empty? ? "lab." : "lab_#{renv}.") end self.establish_connection "lab" belongs_to :patient end class Patient < ActiveRecord::Base def self.table_name_prefix renv = ENV['RAILS_ENV'] || ENV['RACK_ENV'] (renv.empty? ? "main." : "main_#{renv}.") end self.establish_connection "main" has_many :visits end 关于指定连接条件,我仍然在处理所有的细节,但我希望这有助于. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |