raylar bunun user_idyabancı anahtar referansı olduğunu nasıl bilir user?
Rayların kendisi user_idbunun yabancı bir anahtar referansı olduğunu bilmiyor user. İlk komutta rails generate model Micropost user_id:integersadece bir sütun ekler, user_idancak raylar col kullanımını bilmez. Çizgiyi Micropostmodele manuel olarak koymanız gerekir
class Micropost < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :microposts
end
anahtar kelimeler belongs_tove has_manybu modeller arasındaki ilişkiyi belirlemek ve model user_idiçin yabancı bir anahtar olarak ilan User.
Sonraki komut , modeli modele rails generate model Micropost user:referencesekler ve böylece yabancı anahtar olarak bildirir.belongs_to :userMicropost
FYI
Yabancı anahtarların eski yöntemi kullanarak bildirilmesi, Rayların sadece modellerin / tabloların ilişkisi hakkında bilgi sahibi olmasını sağlar. Veritabanı ilişki hakkında bilinmiyor. Bu nedenle, EER Diyagramlarını MySql Workbenchsizin gibi bir yazılım kullanarak oluşturduğunuzda , modeller arasında ilişki ilişkisi çizilmediğini göreceksiniz. Aşağıdaki resimdeki gibi

Ancak, sonraki yöntemi kullanırsanız, taşıma dosyanızın aşağıdaki gibi olduğunu görürsünüz:
def change
create_table :microposts do |t|
t.references :user, index: true
t.timestamps null: false
end
add_foreign_key :microposts, :users
Şimdi yabancı anahtar veritabanı düzeyinde ayarlanmıştır. ve uygun EERdiyagramlar oluşturabilirsiniz .
