From 49f4bf5bc568027760d103da1ce2c1f0c039863a Mon Sep 17 00:00:00 2001 From: Amaia Castro Date: Fri, 13 Jan 2017 19:34:17 +0100 Subject: [PATCH] Destroy object when their parent object is destroyed --- app/models/legislation/annotation.rb | 2 +- app/models/legislation/draft_version.rb | 2 +- app/models/legislation/process.rb | 4 ++-- app/models/legislation/question.rb | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/models/legislation/annotation.rb b/app/models/legislation/annotation.rb index d62363946..2bdfb3fca 100644 --- a/app/models/legislation/annotation.rb +++ b/app/models/legislation/annotation.rb @@ -6,7 +6,7 @@ class Legislation::Annotation < ActiveRecord::Base belongs_to :draft_version, class_name: 'Legislation::DraftVersion', foreign_key: 'legislation_draft_version_id' belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id' - has_many :comments, as: :commentable + has_many :comments, as: :commentable, dependent: :destroy validates :text, presence: true validates :quote, presence: true diff --git a/app/models/legislation/draft_version.rb b/app/models/legislation/draft_version.rb index d0150f1ff..297cef236 100644 --- a/app/models/legislation/draft_version.rb +++ b/app/models/legislation/draft_version.rb @@ -5,7 +5,7 @@ class Legislation::DraftVersion < ActiveRecord::Base include ActsAsParanoidAliases belongs_to :process, class_name: 'Legislation::Process', foreign_key: 'legislation_process_id' - has_many :annotations, class_name: 'Legislation::Annotation', foreign_key: 'legislation_draft_version_id' + has_many :annotations, class_name: 'Legislation::Annotation', foreign_key: 'legislation_draft_version_id', dependent: :destroy validates :title, presence: true validates :body, presence: true diff --git a/app/models/legislation/process.rb b/app/models/legislation/process.rb index 291e85b5a..5c4fc391b 100644 --- a/app/models/legislation/process.rb +++ b/app/models/legislation/process.rb @@ -2,9 +2,9 @@ class Legislation::Process < ActiveRecord::Base acts_as_paranoid column: :hidden_at include ActsAsParanoidAliases - has_many :draft_versions, -> { order(:id) }, class_name: 'Legislation::DraftVersion', foreign_key: 'legislation_process_id' + has_many :draft_versions, -> { order(:id) }, class_name: 'Legislation::DraftVersion', foreign_key: 'legislation_process_id', dependent: :destroy has_one :final_draft_version, -> { where final_version: true, status: 'published' }, class_name: 'Legislation::DraftVersion', foreign_key: 'legislation_process_id' - has_many :questions, -> { order(:id) }, class_name: 'Legislation::Question', foreign_key: 'legislation_process_id' + has_many :questions, -> { order(:id) }, class_name: 'Legislation::Question', foreign_key: 'legislation_process_id', dependent: :destroy validates :title, presence: true validates :description, presence: true diff --git a/app/models/legislation/question.rb b/app/models/legislation/question.rb index c1dacd464..5ab0ea355 100644 --- a/app/models/legislation/question.rb +++ b/app/models/legislation/question.rb @@ -7,7 +7,7 @@ class Legislation::Question < ActiveRecord::Base has_many :question_options, -> { order(:id) }, class_name: 'Legislation::QuestionOption', foreign_key: 'legislation_question_id', dependent: :destroy, inverse_of: :question has_many :answers, class_name: 'Legislation::Answer', foreign_key: 'legislation_question_id', dependent: :destroy, inverse_of: :question - has_many :comments, as: :commentable + has_many :comments, as: :commentable, dependent: :destroy accepts_nested_attributes_for :question_options, :reject_if => proc { |attributes| attributes[:value].blank? }, allow_destroy: true