4
在has_many到关联上实施软删除的最简单方法是什么?通过关联在has_many上软删除
我想是这样的:
class Company > ActiveRecord::Base
has_many :staffings
has_many :users, through: :staffings, conditions: {staffings: {active: true}}
end
我想用Company#users
方式如下:
- 的
Company#users
应该是一个正常的协会,使其与形式工程和不破坏现有合同。 - 当向公司添加用户时,新的
Staffing
与active: true
是创建的。 - 时从公司取出用户,现有
Staffing
更新active: false
(目前只是被删除)。 - 将以前删除的用户添加到公司(以便
Staffing#active == false
)Staffing
更新为active: true
。
我想过重写Company#users=
方法,但它确实不够好,因为还有其他更新关联的方法。
所以问题是:如何实现关于Company#users
关联的解释行为?
谢谢。
后,我很清楚的回调和所有的。我不认为你已经读过这个问题。我如何按照我描述的方式使用“公司#用户”? –
您的四个用例中的哪一个我的答案没有提供解决方案?您可以保留'公司'定义,并添加'after_create'回调和重写的'destroy'方法,并且您提到的所有功能都应该被考虑。也许对你打算如何使用'公司#用户'的说明会有所帮助,因为你实际上没有解释你打算如何使用'公司#用户',只需要满足四个合同。 – TCopple
我已经更新了一下这个问题。请花时间阅读它。 –