与添加到现有模型相关的重命名字段

时间:2018-07-12 14:36:37

标签: ruby-on-rails ruby-on-rails-4 model migration

我想添加用户可以属于老师的关系。教师存储在Admins表中。通常情况下,没人会(零),但是对于在职学生,我会添加一个特定的人作为他们的老师。

通常我认为可以进行此类迁移:

class AddTeacherToUser < ActiveRecord::Migration
  def change
    add_reference :users, :admin, index: true
  end
end

然后在模型中,我可以这样添加:

class User < ApplicationRecord
  belongs_to :admin
 ...

class Admin < ApplicationRecord
  has_many :users
...

但是我想在用户字段teacher_id中使用admin_id,这可能吗?我可以在迁移中还是在模型中重命名字段? Rails版本:4.2

1 个答案:

答案 0 :(得分:4)

在Rails 4.2+中,您可以在数据库中设置外键:

在迁移中,请执行以下操作:

add_reference :users, :teacher, index: true
add_foreign_key :users, :admins, column: :teacher_id

在您的用户模型中:

belongs_to :teacher, class_name: "Admin"