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
我已經更新了一下這個問題。請花時間閱讀它。 –