2014-11-21 76 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