2014-11-21 121 views
0

我目前正在使用Rails 4.2的最新測試版建立一個原型應用程序。如何防止刪除「默認」實體?

對於系統的幾個部分,我需要允許用戶在列表中選擇一個「默認」項目。

到目前爲止,我已經將這作爲模型上的「默認」字段和唯一性驗證來確保只允許一個「默認」字段。

我的業務規則之一是防止刪除「默認」實體。

我可以使用before_destroy回調來做到這一點 - 這工作正常 - 但我也使用https://github.com/radar/paranoia的偏執狂寶石給我軟刪除功能。這會覆蓋使用更新調用銷燬模型(改爲設置「deleted_at」字段)。使用before_update調用不會給我預期的結果,因爲deleted_at字段沒有設置得足夠早。

如果偏執寶石會導致我的問題,我很樂意完全刪除該要求。軟刪除是很好的,而不是現階段的基本特徵。

有沒有人對我如何實現這個邏輯有任何建議,同樣重要的是測試它的工作方式如預期?

回答

0

如果設置了模型的default字段,您可以將其作爲一個非常簡單的驗證來實現,以防止設置deleted_at

+0

聽起來有用@meagar - 你能提供一些示例代碼嗎? – 2014-11-22 12:15:52