微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/ruby/267831.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐