Open
Description
I'm trying to implement a 1:1 relationship between two tables without duplicating data in a new column. The issue is that has_one
does not allow specifying a custom foreign_key
, while belongs_to
does.
This means a new column is created which contains a set of ids, even though I only want a 1:1 relationship.
The only solution I came up with is to use belongs_to on both ends. Is this intended?
Example:
# models/registration
class Registration
include Dynamoid::Document
table name: EnvConfig.DYNAMO_REGISTRATIONS_TABLE, capacity_mode: nil, key: :attendee_id
# does not work
has_one :history, class: RegistrationHistory, foreign_key: :attendee_id
# works, but is semantically incorrect
belongs_to :history, class: RegistrationHistory, foreign_key: :attendee_id
end
# models/registration_history
class RegistrationHistory
include Dynamoid::Document
table name: EnvConfig.REGISTRATION_HISTORY_DYNAMO_TABLE, capacity_mode: nil, key: :attendee_id
# works
belongs_to :registration, foreign_key: :attendee_id
end
Metadata
Metadata
Assignees
Labels
No labels
Activity