1
我试图为我的products
表创建自定义主键product_code
,而不是允许Rails将表默认为使用id
。 products
表与metrics
表的关系为has_one
,但是当我使用belongs_to
指定:product
生成迁移时 - 我的数据库中的外键是product_id
而不是product_code
。如何生成迁移并强制metrics
表中的foreign_key
为product_code
而不是product_id
?在Rails迁移中指定自定义引用密钥名称
我有以下迁移和模型关系。
# Product migration
class CreateProducts < ActiveRecord::Migration
def change
create_table :products, id: false do |t|
t.string :product_code, null: false
t.timestamps null: false
end
add_index :products, :product_code, unique: true
end
end
# models/product.rb
class Product < ActiveRecord::Base
self.primary_key :product_code
has_one :metric
end
# Metric migration
class CreateMetrics < ActiveRecord::Migration
def change
create_table :metrics do |t|
t.belongs_to :product
t.string :department
t.timestamps null: false
end
end
end
# models/metric.rb
class Metric < ActiveRecord::Base
belongs_to :product
end