bagaimana rel tahu itu user_idadalah referensi kunci asing user?
Rails sendiri tidak tahu bahwa itu user_idadalah referensi kunci asing user. Dalam perintah pertama rails generate model Micropost user_id:integerhanya menambahkan kolom user_idnamun rel tidak tahu penggunaan col. Anda harus secara manual meletakkan garis dalam Micropostmodel
class Micropost < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :microposts
end
kata kunci belongs_todan has_manymenentukan hubungan antara model-model ini dan menyatakan user_idsebagai kunci asing untuk Usermodel.
Perintah selanjutnya rails generate model Micropost user:referencesmenambahkan baris belongs_to :userdalam Micropostmodel dan dengan ini menyatakan sebagai kunci asing.
FYI
Mendeklarasikan kunci asing menggunakan metode sebelumnya hanya membuat Rails tahu tentang hubungan model / tabel. Basis data tidak diketahui tentang hubungannya. Karena itu ketika Anda membuat Diagram EER menggunakan perangkat lunak seperti MySql WorkbenchAnda menemukan bahwa tidak ada thread hubungan yang ditarik antara model. Seperti pada gambar berikut

Namun, jika Anda menggunakan metode yang lebih baru, Anda menemukan bahwa file migrasi Anda terlihat seperti:
def change
create_table :microposts do |t|
t.references :user, index: true
t.timestamps null: false
end
add_foreign_key :microposts, :users
Sekarang kunci asing diatur di tingkat basis data. dan Anda dapat menghasilkan EERdiagram yang tepat .
