4/20 还在搞模型

我大概是太菜了

今天学习了一下rails中active record之中的模型关联

发现一对一 一对多 多对多都是有特定的写法的,并不是自己随便建个表连一下外键就可以

比如一对一采用belongs_to,一对多用has_many,多对多用has_many :through.

只有多对多才需要建立一个额外的关系表来保存关系。

所以,把我建立的模型重新改了一下,schame中的表建立如下:

create_table "departments", force: :cascade do |t|
    t.string   "name"
    t.string   "summary"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end


  create_table "keywords", force: :cascade do |t|
    t.string  "name"
    t.integer "course_id"
    t.index ["course_id"], name: "index_keywords_on_course_id"
  end


  create_table "teaching_relationships", force: :cascade do |t|
    t.integer  "teacher_id"
    t.integer  "course_id"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false

  end

需要说明的是:因为几乎还是在建表的阶段,并没有使用正规的migration操作,而是直接rake db:drop,修改了大部分的create migrate文件,再重新rake db:migrate的。实话实说这不是正确操作,按说应该每次都是追加migrate文件的,不过刚开始就这么改,未免有点打补丁的丑陋感觉。所以这么强行修改,希望我的队友们多担待。

这么写的话,有些东西需要队友来解决:

# 在users下 若user_type 是 teacher 应该有has_many :teachingRelationships;has_many :courses, through :teachingRelationships

# 在course下 应该有has_many :teachingRelationships;has_many :teachers, through :teachingRelationships

还有,删除了之前dept_courses这个表,在department model里声明has_many :courses。另外需要队友在course的迁移文件中标注belongs_to


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值