我的模特看起来像这样:
class Project < ActiveRecord::Base
has_many :entries
end
class User < ActiveRecord::Base
has_many :entries
end
class Entry < ActiveRecord::Base
belongs_to :user
belongs_to :project
end
我希望在删除项目时删除依赖于项目的每个条目。我使用带有UUID的Postgres作为他们的ID。我试过这个:
class Project < ActiveRecord::Base
has_many :entries, dependent: :destroy
end
而且:
class Project < ActiveRecord::Base
has_many :entries
before_destroy { |project| Entry.destroy_all "project_id = #{project.id}" }
end
但是当项目被删除时,条目仍然存在。我认为原因是他们还有另一个父对象。
我也尝试从控制器中删除它们:
def destroy
@project = current_company.projects.find(params[:id])
@project.time_entries.delete_all
...
end
问题是什么,我错过了什么?