J'utilise Rails 5 et PostGres 9.4. J'ai deux colonnes dans ma table qui référenceront une autre table. L'autre table s'appelle "encrypted_fields". Je voudrais nommer mes colonnes "enc_field1_encrypted_field_id" et "enc_field2_encrypted_field_id". J'ai essayé cette migrationComment créer une migration avec deux colonnes faisant référence à la même table?
class MySecureInfo < ActiveRecord::Migration[5.0]
def change
create_table :secure_accounts do |t|
t.references :encrypted_field, :enc_field1_encrypted_field_id, index: true, foreign_key: true
t.references :encrypted_field, :enc_field2_encrypted_field_id, index: true, foreign_key: true
end
end
end
mais il explose avec l'erreur ci-dessous
PG::UndefinedTable: ERROR: relation "enc_field1s" does not exist
Comment puis-je régler ma migration pour éviter l'erreur?
On dirait que vous avez une faute de frappe ('encryptd_field')? Peut-être pas votre problème, mais sauté. – jvillian
Bon appel. J'ai corrigé la faute de frappe mais l'erreur reste. – Dave
Je ne vois pas le point. Le type de colonne références est utilisé pour lier un modèle à un autre. Cela ne sert à rien de faire deux fois ça. 'enc_field1_encrypted_field_id' et' enc_field2_encrypted_field_id' conserveront la même clé de l'enregistrement de l'autre table 'encrypted_field'. Pouvez-vous développer un peu ici – Maxence