假设我有
class CreateAppointments < ActiveRecord::Migration
def change
create_table :physicians do |t|
t.string :name
t.timestamps null: false
end
create_table :patients do |t|
t.string :name
t.timestamps null: false
end
create_table :appointments do |t|
t.belongs_to :physician, index: true
t.belongs_to :patient, index: true
t.datetime :appointment_date
t.timestamps null: false
end
end
end
1-我是否必须再次定义模型文件中的关联?这引出了我的下一个问题.... 2-我是否必须为第三个约会表创建一个模型,或者只是运行迁移,每当医生和患者更新时,Active Record都会负责更新它?什么时候会在这种类型的关联中触发到第三个表的插入?
答案 0 :(得分:1)
活跃唱片里面有很多魔法,所以我明白你的来源。
是的,迁移不会为ActiveRecord模型添加正确的关联。迁移可以对数据库进行更改。
是的,如果你没有使用rails g scaffold或model生成它,那么你需要创建一个继承自ActiveRecord :: Base的Appointment类,以便通过orm使用它。然后对他们进行适当的关联(患者有很多预约,他们也会有很多医生通过预约。反之亦然医生。