首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从引用记录的所有表中删除该记录?

如何从引用记录的所有表中删除该记录?
EN

Stack Overflow用户
提问于 2011-07-30 19:13:12
回答 1查看 125关注 0票数 1

早上好,奥弗劳斯兄弟,

模型关联的小问题。我有这些模型关联:

代码语言:javascript
复制
class Categorization < ActiveRecord::Base
  belongs_to :exhibit
  belongs_to :category
end

class Category < ActiveRecord::Base
  has_many :categorizations
  has_many :exhibits, :through => :categorizations
  acts_as_indexed :fields => [:title]
  validates :title, :presence => true, :uniqueness => true 
end

class Exhibit < ActiveRecord::Base
  has_many :categorizations
  has_many :categories, :through => :categorizations, :source => :category
  acts_as_indexed :fields => [:title, :bulb]
  validates :title, :presence => true, :uniqueness => true
  belongs_to :foto, :class_name => 'Image'
end

因此,本质上,Categorization以这些列(省略日期/时间戳)结束:categorization_idexhibit_idcategory_id

我的问题是,当我删除一个Exhibit时,它在Categorization表上的引用并没有被删除,因此在我的视图上得到一个DB错误。我必须首先从任何类别中取消分配Exhibit,然后安全地删除它。或者(例如,假设我删除的Exhibit具有:exhibit_id=>'1'),当我在rails consoleCategorization.find_by_exhibit_id(1).destroy中给出时

谢谢你的帮助!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-30 19:20:58

您可以在希望Rails在删除其父关联时遵循的关联上设置:dependent选项:

代码语言:javascript
复制
class Exhibit < ActiveRecord::Base
  has_many :categorizations, :dependent => :destroy
  ...
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6882759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档