ruby -- 基础学习(二) 外键配置实现级联删除

时间:2023-03-09 14:26:13
ruby -- 基础学习(二) 外键配置实现级联删除
该系列学习基于rails4.0
数据表:admins (id, name, address), articles (id, admin_id, title)
admin_id 是表articles中的外键,和表admin中的id对应,表admins和表articles是一对多的关系
 
下面是配置方法,由于本人很菜,配置过程中的各种苦逼~

1. 在migrate文件夹中找到xxxx_create_articles.rb文件

    进行修改配置,配置如下:(部分代码)
 class CreateArticles < ActiveRecord::Migration
def self.up
create_table :articles do |t|
t.column :id, :int
t.references :admin, index: true
t.column :name, :char
t.column :address, :string
t.timestamps
end
end
end
 
修改完毕后,在项目目录下的命令行输入 rake db:migrate(如果表已经存在,把数据表删除,重新建表)
 
2. 修改models中的admin.rb,修改后如下:
 class Admin < ActiveRecord::Base
attr_accessible :id, :name, :address, :telephone
has_many :articles,
:class_name => "Article",
:foreign_key => "admin_id" ,
:dependent => :destroy
end
 
3. 修改models中的article.rb,修改后如下:
 class Article < ActiveRecord::Base
attr_accessible :id, :admins_id
belongs_to :admin,
:class_name => "Admin",
:foreign_key => "admin_id"
end
 
这样,就可以实现级联删除啦!!over~~