【问题标题】:Rename field in relation added to existing model重命名与添加到现有模型相关的字段
【发布时间】:2018-07-12 14:36:36
【问题描述】:

我想添加用户可以属于_老师的关系。教师存储在 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

【问题讨论】:

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


    【解决方案1】:

    在 Rails 4.2+ 中,您可以在 db 中设置外键:

    在您的迁移中:

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

    在你的用户模型中做:

    belongs_to :teacher, class_name: "Admin"
    

    【讨论】:

    • 这正是我需要的:)
    • 但也适用于class Admin &lt; ApplicationRecord has_many :users, foreign_key: teacher_id
    猜你喜欢
    • 1970-01-01
    • 2021-04-05
    • 2023-03-15
    • 2014-09-04
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    相关资源
    最近更新 更多