Use correct key in unconventional associations #2292
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A fix for a bug that you can reproduce right now easily: visit the demo app (https://administrate-prototype.herokuapp.com/admin/customers), select any customer, edit, save, and the customer will lose their
territory
value.This is a bug introduced with #1633, where I failed to use
associated_primary_key
to refer to the key on the other side of a foreign key.Specifically in our demo app, the
Customer
model belongs toCountry
. However instead of the conventional matching ofCustomer#country_id
toCountry#id
, it should matchCustomer#country_code
toCountry#code
. Whileforeign_key
gives uscountry_code
, we wrongly useprimary_key
for the counterpart. Instead we should useassociation_primary_key
which gives uscode
.Fixes #2169