我有两个型号,
class Event < ActiveRecord::Base
serialize :user_ids, Array
end
和
class User < ActiveRecord::Base
end
假设,事件模型中的user_ids具有值[1,2,3,4]。
现在,如果我删除ID为1的用户记录。
它还必须删除驻留在事件表的user_ids字段中的user_id。结果应为user_ids = [2,3,4]
。喜欢:dependent =&gt; :破坏。
我是否需要为此确定必须编写before_destroy回调.. ??或任何其他解决方案?
答案 0 :(得分:1)
是的,正如你的建议,你将不得不在你自己写的回调中做到这一点。类似的东西:
before_destroy :remove_users
def remove_users
User.where(id: self.user_ids).destroy_all
end
虽然看起来确实很具破坏性。通常User
用于登录系统的用户,但我猜你在这种情况下没有使用它。