使用带有加密主键的模型的has_one关联

时间:2015-09-29 08:03:32

标签: ruby-on-rails activerecord encryption has-one

我有AddressZipCode个型号。 Address模型有encrypted_post_code字段,ZipCodecode字段。我想使用指定字段在has_one关联的帮助下绑定Address条记录和ZipCode条记录。目前我需要它使用包括,预加载,eager_load等的ActiveRecords功能。

不幸的是,地址记录的所有字符串字段都是加密的(它是客户的要求)。我无法使用has_one :zip_code, primary_key: :post_code, foreign_key: :code,因为我在地址表中没有post_code字段,它只包含encrypted_post_code字段。

请告知如何解决此问题。

1 个答案:

答案 0 :(得分:1)

我认为您的客户并不了解加密的好处。但是,这并不重要,因为您的数据库应该通过id而不是加密的邮政编码进行关联。

因此,您的邮政编码表可以包含id, encrypted_post_code列,然后地址只有postcode_id字段,并以此方式进行连接。这样你就可以完全避免处理加密的邮政编码,直到你需要找出真正的邮政编码是什么,然后通过关联查找并解密它。