t.references
和之间有什么区别t.belongs_to
?为什么我们有这两个不同的词?在我看来,他们做同样的事情?尝试了一些Google搜索,但没有找到解释。
class CreateFoos < ActiveRecord::Migration
def change
create_table :foos do |t|
t.references :bar
t.belongs_to :baz
# The two above seems to give similar results
t.belongs_to :fooable, :polymorphic => true
# I have not tried polymorphic with t.references
t.timestamps
end
end
end
1
它们的工作原理相同-是一件坏事吗?引用会为您插入一个外键列。您可以改用belongs_to使您的迁移更具可读性。有关某些详细信息,请参见guides.rubyonrails.org/migrations.html。
—
muffinista 2011年
不说这是一件坏事。只是因为它们的工作原理相同或不同而感到困惑,因为我找不到专门说明它们工作原理相同的文档。http://guides.rubyonrails.org/migrations.html对此也不清楚。
—
Tornskaden
这可能只是为了向后兼容,
—
砖匠2011年
references
在以后的rails版本中将不建议使用并删除它。不要相信我,这只是有根据的猜测。
“另一个帮助程序称为引用(也可以作为belongs_to提供。以最简单的形式,它只是增加了一些可读性”)-来自指南
—
muffinista 2011年
也是这里的源代码——belongs_to
—
muffinista 2011年