foreign_key
primary_key
とあわせて optional: true
を指定すれば、テーブル中で外部キーの値が重複していてもエラーを起こさず許容してくれるようだ
例
子クラス
class Book < ApplicationRecord
belongs_to :author, foreign_key: :code, primary_key: :author_code, optional: true
親クラス
class Author < ApplicationRecord
has_many :books, foreign_key: :authori_code, primary_key: :code