我不确定标题是否真的正确解释了我正在尝试做的事情,所以请原谅我。我有一个名为 clients 的表,用于我构建的发票系统。我也有称为项目和发票的表格。
这是我的数据库结构的示例(不是表中的实际列,仅作为示例)。
Clients
id
name
description
archive
Projects
id
client_id
name
description
archive
Projects
id
client_id
project_id
name
description
archive
我已经创建了独立归档给定发票、项目或客户的能力。但是,我想看看如果我想让客户的项目和发票在我存档客户时自动标记为存档,那么最好的方法是什么。我的过程是这样的:
- 存档客户将存档客户、具有该客户 ID 的所有项目以及具有相同客户 ID 的所有发票。
- 归档项目将归档项目和具有该项目 ID 的所有发票。
- 归档发票只是归档发票本身
注意:“存档”是指存档位被翻转为 1 而不是 0(未存档/活动)。
顺便说一句,你存档的方式是在编辑屏幕上有一个“存档?” 您将选中以存档项目的复选框。
我知道在我的控制器中的编辑操作中,我可以说类似if archive == 1
然后运行附加的 sql 更新语句来更新依赖项else @object.save
以保存已编辑项的数据。
我的问题?
有一个更好的方法吗?我通常提到的方式是最佳实践吗?当删除“父”项时,我已经:dependent => :destroy
在模型中的其他地方使用删除关联表中的行。Rails 中是否有一些预置的东西可以让我通过表的关系来标记我正在尝试做的事情?
感谢您对此的任何帮助!希望我能很好地解释问题和问题,但如果您有问题,请告诉我。