提交 5ffbcf12 编写于 作者: R Rafael Mendonça França

Merge pull request #21165 from manlon/master

use correct DB connection for generated HABTM table
......@@ -46,7 +46,7 @@ def through_model
join_model = Class.new(ActiveRecord::Base) {
class << self;
attr_accessor :class_resolver
attr_accessor :left_model
attr_accessor :name
attr_accessor :table_name_resolver
attr_accessor :left_reflection
......@@ -58,7 +58,7 @@ def self.table_name
end
def self.compute_type(class_name)
class_resolver.compute_type class_name
left_model.compute_type class_name
end
def self.add_left_association(name, options)
......@@ -72,11 +72,15 @@ def self.add_right_association(name, options)
self.right_reflection = _reflect_on_association(rhs_name)
end
def self.retrieve_connection
left_model.retrieve_connection
end
}
join_model.name = "HABTM_#{association_name.to_s.camelize}"
join_model.table_name_resolver = habtm
join_model.class_resolver = lhs_model
join_model.left_model = lhs_model
join_model.add_left_association :left_side, anonymous_class: lhs_model
join_model.add_right_association association_name, belongs_to_options(options)
......
......@@ -3,6 +3,7 @@
require 'models/computer'
require 'models/project'
require 'models/company'
require 'models/course'
require 'models/customer'
require 'models/order'
require 'models/categorization'
......@@ -14,6 +15,7 @@
require 'models/parrot'
require 'models/person'
require 'models/pirate'
require 'models/professor'
require 'models/treasure'
require 'models/price_estimate'
require 'models/club'
......@@ -923,4 +925,14 @@ def test_association_force_reload_with_only_true_is_deprecated
assert_deprecated { developer.projects(true) }
end
def test_alternate_database
professor = Professor.create(name: "Plum")
course = Course.create(name: "Forensics")
assert_equal 0, professor.courses.count
assert_nothing_raised do
professor.courses << course
end
assert_equal 1, professor.courses.count
end
end
require_dependency 'models/arunit2_model'
class Professor < ARUnit2Model
has_and_belongs_to_many :courses
end
......@@ -939,3 +939,12 @@ def except(adapter_names_to_exclude)
College.connection.create_table :colleges, force: true do |t|
t.column :name, :string, null: false
end
Professor.connection.create_table :professors, force: true do |t|
t.column :name, :string, null: false
end
Professor.connection.create_table :courses_professors, id: false, force: true do |t|
t.references :course
t.references :professor
end
require 'active_support/logger'
require 'models/college'
require 'models/course'
require 'models/professor'
module ARTest
def self.connection_name
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册