gpt4 book ai didi

ruby-on-rails-3 - 在 Rails 迁移中使用 t.integer 和 t.reference 定义外键有什么区别

转载 作者:行者123 更新时间:2023-12-04 07:14:59 25 4
gpt4 key购买 nike

给定两个类,Apple 和 Orange:

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

我见过两者,它们似乎可以互换。只是想确保我没有遗漏一些微妙/魔法。

哦,我在使用带有 MySQL 的 Rails 3.2

最佳答案

http://guides.rubyonrails.org/migrations.html#special-helpers

本身没有魔法。使迁移更具可读性,更流畅,如果您愿意,并且如果您使用多态,还可以添加类型列。所以,要么,但引用更好,只是因为它是。

关于ruby-on-rails-3 - 在 Rails 迁移中使用 t.integer 和 t.reference 定义外键有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9984071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com