【发布时间】:2017-03-02 08:44:15
【问题描述】:
我想删除与被销毁组关联的所有 group_maps 记录。 In the docs,上面写着
如果使用 :through 选项,则连接记录将被销毁,而不是对象本身。
我很困惑。
group.rb
class Group < ApplicationRecord
belongs_to :user
has_many :group_maps
has_many :users, :through => :group_maps
before_destroy :destroy_group_maps
def destroy_group_maps
self.group_maps.delete_all
end
end
编辑 1:
顺便说一句,我试过添加,:dependent => destroy
和
:dependent => delete_all 也是。他们都没有工作。
编辑 2:
group_maps_controller.rb
class GroupMapsController < ApplicationController
def destroy
GroupMap.find[params[:id]].destroy
end
end
【问题讨论】:
-
试试,
self.group_maps.destroy_all -
感谢您的评论,它也不好用。问题是我在 groups_controller.rb 中没有
destroy方法吗?如果是这样,我应该在destroy方法中添加什么? -
没有破坏方法不是问题,你有没有像 thoi 一样添加依赖破坏?
has_many :group_maps, dependent: :destroy -
如果你在控制台中尝试,重启 Rails 控制台
-
哦,谢谢!这就是问题所在。重新启动控制台就像一个魅力。另外,我可以使用
has_many :group_maps, :dependent => :destroy,它也可以!您能否将您的答案转换为评论,以便我将其标记为答案?
标签: ruby-on-rails ruby ruby-on-rails-3 activerecord