我有一个带有field ward_id的表学生,我必须创建一个名为guardian_users的表,其中包含字段id,ward_id,email,guardian_id,hashed_password等.
现在我必须添加约束外键.学生中的任何更新/删除/编辑/插入都应对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