Created
July 31, 2015 17:03
-
-
Save shterrett/51800818ef64c66627e5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# database.yml | |
# development: | |
# database: development | |
# secondary_development: | |
# database: second_development | |
module Second | |
class Property < ActiveRecord::Base | |
establish_connection YAML::load(File.open(Rails.root.join('config', 'database.yml')))['second_development'] | |
has_and_belongs_to_many :property_groups | |
end | |
end | |
module Second | |
class PropertyGroup < ActiveRecord::Base | |
establish_connection YAML::load(File.open(Rails.root.join('config', 'database.yml')))['second_development'] | |
has_and_belongs_to_many: properties | |
end | |
end | |
# in Rails console | |
property = Property.first | |
property_group = PropertyGroup.first | |
property.property_groups.include? property_group #=> false | |
property.property_groups.append(property_group) | |
property.property_groups.include? property_group #=> true | |
property.reload.property_groups.include? property_group #=> false | |
# The above implies that the record is not getting saved properly, | |
# but that the save is not failing | |
# https://github.com/rails/rails/blob/1883f37742b976d3d20e0ba4a3564911f4868172/activerecord/lib/active_record/associations/collection_proxy.rb#L35 | |
association = property.property_groups.instance_variable_get(:@association) | |
# https://github.com/rails/rails/blob/1883f37742b976d3d20e0ba4a3564911f4868172/activerecord/lib/active_record/associations/has_many_through_association.rb#L63 | |
join_record = association.send(:build_through_record, property_group) | |
association.class.connection #=> a database connection with the database name "development" | |
property.class.connection #=> a database connection with the database name "second_development" | |
property_group.class.connection #=> #a database connection with the database name "second_development" | |
# In development, there is also a join table (with the same name). The thrust of the project is to | |
# eventually unify the databases. This is why the write isn't failing, but also isn't showing | |
# up on read. It's writing to development, but reading from second_development | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment