ruby-on-rails – 在rails中创建一个表并添加外键约束

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在rails中创建一个表并添加外键约束前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个带有field ward_id的表学生,我必须创建一个名为guardian_users的表,其中包含字段id,ward_id,email,guardian_id,hashed_pa​​ssword等.

现在我必须添加约束外键.学生中的任何更新/删除/编辑/插入都应对guardian_users产生相同的影响.

我怎样才能在rails 2.3.5中做到这一点?

表学生存在但其他人尚不存在.

解决方法

您将需要 foreign_key_migrations插件或#execute方法.假设你使用插件
class CreateGuardianUsersTable < ActiveRecord::Migration
  def self.up
    create_table(:guardian_users) do |table|
      table.timestamps # I find them useful; YMMV
      table.integer :guardian_id
      table.integer :ward_id,:null => false,:references => [:students,:id]
      table.string :email
      table.string :heahead_password
    end
  end

  def self.down
    drop_table :guardian_users
  end
end

在你的模型中:

class GuardianUser < ActiveRecord::Base
  belongs_to :student
end

class Student < ActiveRecord::Base
  has_many guardian_users:,:foreign_key => 'ward_id',:class_name => 'GuardianUser',:dependent => :destroy
end
原文链接:https://www.f2er.com/ruby/267831.html

猜你在找的Ruby相关文章