5
鑑於兩類,蘋果和橘子之間的區別:什麼是使用t.integer和t.reference在Rails遷移定義外鍵
def class Apple < ActiveRecord::Base
has_and_belongs_to_many :oranges
end
def class Orange < ActiveRecord::Base
has_and_belongs_to_many :apples
end
什麼用t.integer定義外的區別在連接表項:
create_table :apples_oranges, :id => false do |t|
t.integer :apple_id
t.integer :orange_id
end
,並使用t.references來定義連接表的外鍵:
create_table :apples_oranges, :id => false do |t|
t.references :apple
t.references :orange
end
我已經看到兩者,他們似乎是可以互換的。只是想確保我沒有一點微妙/魔力。
哦,我on Rails的3.2W/MySQL的
非常好,謝謝! – plainjimbo 2012-04-02 22:03:26
您還可以使用't.belongs_to'作爲't.references'的同義詞,這使得關聯對於閱讀遷移的任何人都更加明確。 – MrTheWalrus 2012-04-03 00:17:07