У меня есть Address
и ZipCode
модели. Address
модель есть encrypted_post_code
район, ZipCode
есть code
раздел. Я хотел бы связать Address
записи и ZipCode
записей с помощью ассоциации has_one, используя указанные поля. В настоящее время мне нужно использовать такие функции ActiveRecords, как include, preload, eager_load и т. Д.Использование ассоциации has_one для модели с зашифрованным первичным ключом
К сожалению, все строковые поля записей адресов зашифрованы (это требование клиента). Я не могу использовать has_one :zip_code, primary_key: :post_code, foreign_key: :code
, потому что у меня нет поля post_code в таблице адресов, оно содержит только поле encrypted_post_code.
Пожалуйста, сообщите, как решить эту проблему.
Спасибо! Вы правы, это сработает, но есть ли способ не менять схемы таблиц? Это будет довольно болезненно. –
Просто измените его с миграцией, лучше потратьте немного времени на то, чтобы получить его прямо сейчас, чем навсегда бороться с чем-то странным и неинтуитивным. –