Apa perbedaan antara t.references
dan t.belongs_to
? Mengapa kita memiliki dua kata yang berbeda itu? Menurut saya mereka melakukan hal yang sama? Mencoba beberapa pencarian Google, tetapi tidak menemukan penjelasan.
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
ruby-on-rails
rails-migrations
Tornskaden
sumber
sumber
references
akan ditinggalkan dan dihapus di rilis rel yang akan datang. Jangan percaya kata-kata saya ini, itu hanya tebakan yang cerdas.Jawaban:
Melihat kode sumber , mereka melakukan hal yang persis sama -
belongs_to
adalah alias darireference
:Ini hanyalah cara untuk membuat kode Anda lebih mudah dibaca - senang dapat memasukkan
belongs_to
migrasi Anda bila perlu, dan tetap berpegang padareferences
jenis asosiasi lainnya.sumber
references
adalah pilihan yang ambigu untuk sebuah istilah. Mereka berganti namabefore_filter
menjadibefore_action
, yang merupakan langkah yang baik karena mengurangi ambiguitas. Salah satu keuntungannyareferences
adalah bahwa ini hanya berbeda dari apa yang Anda gunakan dalam model, jadi Anda tidak terlalu bingung jika Anda berada dalam model atau migrasi. Tetapi istilah apa pun yang berbeda akan memenuhi kriteria ini.references
adalah istilah yang lebih baik di tingkat db.