重命名已添加到现有模型的相关字段
Rename field in relation added to existing model
我想添加用户可以belongs_to老师的关系。教师存储在 Admins table 中。通常是没有人(nil),但对于活跃的学生,我会添加一个特定的人,他现在是他们的老师。
通常我认为可以做运行这样的迁移:
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
在 Rails 4.2+ 中,您可以在数据库中设置外键:
在您的迁移中执行:
add_reference :users, :teacher, index: true
add_foreign_key :users, :admins, column: :teacher_id
在您的用户模型中执行:
belongs_to :teacher, class_name: "Admin"
我想添加用户可以belongs_to老师的关系。教师存储在 Admins table 中。通常是没有人(nil),但对于活跃的学生,我会添加一个特定的人,他现在是他们的老师。
通常我认为可以做运行这样的迁移:
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
在 Rails 4.2+ 中,您可以在数据库中设置外键:
在您的迁移中执行:
add_reference :users, :teacher, index: true
add_foreign_key :users, :admins, column: :teacher_id
在您的用户模型中执行:
belongs_to :teacher, class_name: "Admin"